Stream: git-cranelift

Topic: cranelift / Issue #500 Coloring: Don't leave regmove/regs...


view this post on Zulip GitHub (Feb 28 2020 at 23:24):

alexcrichton transferred Issue #500:

The regmove/regspill/regfill instructions are special. They're emitted by the coloring pass to temporarily override the assigned registers (func.locations) for values. This is surprising, and it means that very late passes which run after register allocation can't just look at func.locations and have to use RegDiversions and walk the IR in order to know what registers are assigned to what values.

They also currently require special casing to work around this issue.

It would be nice to find a way to either avoid using regfill/regspill/regfill, or to rewrite them once coloring is done, so that func.locations is left up to date.


Last updated: Dec 23 2024 at 13:07 UTC