Request for reviews (M): 6709742: find_base_for_derived's use of Ideal NULL is unsafe causing crashes during register allocation
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Wed Apr 22 15:54:33 PDT 2009
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