RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool)

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Jun 5 15:31:00 PDT 2012


http://cr.openjdk.java.net/~vi/7169782/webrev.01/

During compilation, u0 in long_by_long_mulhi can become dead during 
interim transformations. It makes locally cached node pointer useless 
and the compiler crashes when trying to traverse node's dependencies. 
The fix is to artificially keep u0 node alive till the end of the graph 
construction using dummy hook node trick.

Also:
   - did a cleanup: fixed lifetimes of other shared interim nodes to 
avoid similar problems in the future
   - added a regression test for 6732154

Testing: VM regression tests

Thanks!

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list