Displaying 2 results from an estimated 2 matches for "scavengeslot".
2012 Nov 10
0
[LLVMdev] register scavenger
...client can then use this register to
replace vreg1 with. Then the client is expected to call RS->forward(I)
which will update the current liveness state (include the store of
R1). R1 will then be available for the next time you call RS->scavenge
- in our example for vreg2.
R1 = ...
store R1, ScavengeSlot // Spill
vreg1 = add SP, 1000
... = load vreg1 <kill>
... // more code
vreg2 = add SP, 2000
... = load vreg2 <kill>
R1 = load ScavengeSlot // Restore
... = R1
===> we replace vreg1 with R1 and advance the RS' state by calling
RS->forward(It)
R1 = ...
store R1, ScavengeSlot...
2012 Nov 10
5
[LLVMdev] register scavenger
I'm confused as to the logic used in the register scavenger when it
cannot find a free register.
I would think that it would want to free up the emergency spill slot
immediately after it's use, because otherwise there is a chance of
needing to use the emergency slot again and not be able to.
Instead it tries to restore it only right before register it is freeing up.
Maybe I'm