Request for review (XS): 6901572 JVM 1.6.16 crash on loops: assert(has_node(i),"")
Vladimir.Kozlov at Sun.COM
Wed Dec 2 11:40:25 PST 2009
Update the comment in loopnode.cpp for dead phi check.
So we hit the assert in build_loop_late because in
the secondary IV code we added new users of the phi
and set control for them (phase->set_ctrl(add, cl)).
Is this assumption correct? Or it was different reason?
Changpeng Fang wrote:
> Fixes 6901572 JVM 1.6.16 crash on loops: assert(has_node(i),"")
> When the loop optimizer handles secondary induction variables in
> 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.
> 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 case in the bug report.
More information about the hotspot-compiler-dev