Request for reviews (S): 6875959
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Wed Sep 30 09:45:32 PDT 2009
http://cr.openjdk.java.net/~kvn/6875959/webrev.01
Fixed 6875959: CTW fails hotspot/src/share/vm/opto/reg_split.cpp:1087
Problem:
When choosing a candidate for spilling ties may happen when
live ranges defined and used only inside one block.
In which case area is 0 and score set to max for all such
live ranges. As result coloring is done in the order
of live ranges numbers. In the bug's case the spill copy
was added to break long (64 bit on 32-bit x86) mem-mem move
and because of the above it processed after bound live ranges
and there are no registers pair left for it. And when we try
to spill it we got the assert.
Solution:
To break spill ties choose bound live range over unbound
(to free register) or one with smaller cost to spill.
Reviewed by:
Fix verified (y/n): y, bug's test
Other testing:
JPRT, refworkload
More information about the hotspot-compiler-dev
mailing list