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 15:35:50 PDT 2009
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