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