Request for reviews (M): 6709742: find_base_for_derived's use of Ideal NULL is unsafe causing crashes during register allocation
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Wed Apr 22 16:03:56 PDT 2009
Thanks, Tom
Vladimir
Tom Rodriguez wrote:
> That looks good to me.
>
> tom
>
> On Apr 22, 2009, at 3:35 PM, Vladimir Kozlov wrote:
>
>> I updated changes and the webrev based on the discussion.
>> These changes don't use an existing mach NULL node.
>>
>> http://cr.openjdk.java.net/~kvn/6709742/webrev.01
>>
>> Fixed 6709742: find_base_for_derived's use of Ideal NULL is unsafe
>> causing crashes during register allocation
>>
>> Problem:
>> PhaseChaitin::stretch_base_pointer_live_ranges() stretches
>> the base pointers for live ranges and in some cases may
>> have to construct a NULL base in find_base_for_derived.
>> It constructs an Ideal NULL instead of a mach one and
>> if the Ideal NULL is ever used in Phi with real machine
>> values we will die during register allocation.
>>
>> Solution:
>> Create a mach node corresponding to ideal node ConP #NULL
>> specifically for derived pointers.
>>
>> Add the assert to catch the bug case.
>> Add asserts to verify that narrow pointers can't be derived.
>>
>> Reviewed by:
>>
>> Fix verified (y/n): y, crush in Eclipse from 6614100
>> with restored 6552204 code
>>
>> Other testing:
>> JPRT, CTW (32- and 64-bit), JPRT and CTW with compressed oops
>
More information about the hotspot-compiler-dev
mailing list