Mercurial > hg > graal-jvmci-8
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. |