comparison src/share/vm/opto/loopTransform.cpp @ 23065:6b40d295742c

8078866: compiler/eliminateAutobox/6934604/TestIntBoxing.java assert(p_f->Opcode() == Op_IfFalse) failed Summary: Bail out from range check elimination if pre loop is not found Reviewed-by: kvn
author roland
date Thu, 04 Jun 2015 16:19:22 +0200
parents 5b8e0f84f00f
children dd9cc155639c 192643caadca 94ec11846b18
comparison
equal deleted inserted replaced
23060:91a1be057e0a 23065:6b40d295742c
1819 assert(opqzm->in(1) == main_limit, "do not understand situation"); 1819 assert(opqzm->in(1) == main_limit, "do not understand situation");
1820 1820
1821 // Find the pre-loop limit; we will expand it's iterations to 1821 // Find the pre-loop limit; we will expand it's iterations to
1822 // not ever trip low tests. 1822 // not ever trip low tests.
1823 Node *p_f = iffm->in(0); 1823 Node *p_f = iffm->in(0);
1824 assert(p_f->Opcode() == Op_IfFalse, ""); 1824 // pre loop may have been optimized out
1825 if (p_f->Opcode() != Op_IfFalse) {
1826 return;
1827 }
1825 CountedLoopEndNode *pre_end = p_f->in(0)->as_CountedLoopEnd(); 1828 CountedLoopEndNode *pre_end = p_f->in(0)->as_CountedLoopEnd();
1826 assert(pre_end->loopnode()->is_pre_loop(), ""); 1829 assert(pre_end->loopnode()->is_pre_loop(), "");
1827 Node *pre_opaq1 = pre_end->limit(); 1830 Node *pre_opaq1 = pre_end->limit();
1828 // Occasionally it's possible for a pre-loop Opaque1 node to be 1831 // Occasionally it's possible for a pre-loop Opaque1 node to be
1829 // optimized away and then another round of loop opts attempted. 1832 // optimized away and then another round of loop opts attempted.