review (S) for

Tom Rodriguez tom.rodriguez at oracle.com
Wed Dec 15 15:20:30 PST 2010


On Dec 15, 2010, at 2:50 PM, Vladimir Kozlov wrote:

> Looks good.
> 
> +     // There no known reason why this should occur but just in case...
>              ^ is

Fixed.

> 
> What could be the case when assigned_regHi() == -1 but assigned_reg() != -1 (num == 2)?

alloc_free_reg may not be able to get both registers for a pair and it leaves the interval with the first reg set but regHi is still -1.  Then it goes to do some spilling to free a register for the second part. If you try to print it during this part you'll assert.

tom

> 
> Vladimir
> 
> Tom Rodriguez wrote:
>> http://cr.openjdk.java.net/~never/6579789
>> 6579789: Internal error "c1_LinearScan.cpp:1429 Error: assert(false,"")" in debuggee with fastdebug VM
>> Reviewed-by:
>> When using the x86 FPU, spilling at an exception entry point may
>> mutate the intervals so that _sorted_intervals is no longer sorted.
>> The fix is detect this case and resort as needed.  Additionally I
>> added some more assertion checks and fixed a printing problem that
>> would assert on partially allocated intervals.  Tested with new test
>> case and CTW.



More information about the hotspot-compiler-dev mailing list