Request for review (XS): 6901572 JVM 1.6.16 crash on loops: assert(has_node(i),"")

Changpeng Fang Changpeng.Fang at Sun.COM
Wed Dec 2 10:51:59 PST 2009


http://cr.openjdk.java.net/~cfang/6901572/webrev.01/

Fixes 6901572 JVM 1.6.16 crash on loops: assert(has_node(i),"")

Problem:
When the loop optimizer handles secondary induction variables in 
IdealLoopTree::counted_loop,
it hits a dead phi and results in "assert(has_node(i),"")" at the time 
of  "get_ctrl" for the dead node.
The phi is dead because "final int x" in the attached test case is 
useless and becomes dead after the
safepoint is removed for the counted loop.

Solution:
Skip the secondary induction variable handling if it is dead. The dead 
phi will be put into the deadlist
late in PhaseIdealLoop::build_loop_late and removed.

Test:
test case in the bug report.

Thanks,

Changpeng


More information about the hotspot-compiler-dev mailing list