Loading... (original) (raw)

In

JDK-8078866

, the pre loop is optimized out but the main/post loops are not. If the pre loop’s limit is still an opaque node, then the compiler has not been able to optimize the pre loop based on its limited number of iterations yet. I don’t see what optimization would remove stuff from the pre loop that wouldn’t have removed the same stuff from the initial loop, had it not been cloned. So it should be safe to remove the main and post loops.

backported by

Backport - A issue that is required to port a Bug or Feature into another product release. This issue type is generally associated with the main Bug/Feature to represent each individual release of the port. JDK-8135487 Optimize main and post loop out when pre loop is found empty

relates to

Bug - A problem which impairs or prevents the functions of the product. JDK-8078866 compiler/eliminateAutobox/6934604/TestIntBoxing.java assert(p_f->Opcode() == Op_IfFalse) failed

Bug - A problem which impairs or prevents the functions of the product. JDK-8327423 C2 remove_main_post_loops: check if main-loop belongs to pre-loop, not just assert

Bug - A problem which impairs or prevents the functions of the product. JDK-8233529 loopTransform.cpp:2984: Error: assert(p_f->Opcode() == Op_IfFalse) failed