-
Bug
-
Resolution: Fixed
-
P4
-
11, 17, 19, 20, 21
-
b05
See attached test case. The test method has a loop nest with 2 loops. The outer most loop is an irreducible loop. The safepoints for both loops are in the inner loop. The one for the irreducible loop is not marked as required (because IdealLoopTree::check_safepts skips irreducible loops) and so is removed. At CCP, the backedge of the inner loop is found to be never taken, one of the conditions to enter the irreducible loop is never taken and the backedge for the irreducible loop is found to be always taken. What's left is a single node infinite loop which is then eliminated as dead code.