Java Reference
In-Depth Information
current = V37
active: [V33, V34, V36]
inactive: []
free registers: []
Allocation failed.
Spill $t2 for all of current.
7. unhandled: [V38, V39]
current = V38
active: [V33, V37]
inactive: []
free registers: [$t0]
Interval V38 is allocated physical register $t0
8. In the next iteration we spill $t2 again 5 .
unhandled: [V39]
current = V39
active: [V33, V37, V38]
inactive: []
free registers: []
Allocation failed.
Spill $t2 for all of current.
9. unhandled: [V40]
current = V40
active: [V33, V39]
inactive: []
free registers: [$t0]
Interval V40 is allocated physical register $t0
Global data-flow resolution requires the insertion of several loads and stores to keep the
register values consistent 6 .
Local Data-flow Resolution:
Store inserted for V34 at 26 in block [B3]
Load inserted for V39 at 34 in block [B3]
Store inserted for V37 at 31 in block [B3]
Load inserted for V40 at 44 in block [B3]
Global Data-flow Resolution:
Store inserted for V34 at 11 in block [B1]
Load inserted for V39 at 54 in block [B4]
5 The previous footnote applies here also.
6 As the two previous footnotes observe, we avoid all of these loads and stores if we implement the
improvement that distinguishes between reads and writes in an LIR instruction.
 
Search WWH ::




Custom Search