< prev index next >

src/hotspot/share/opto/parse2.cpp

Print this page




2285       b = null_check_oop(b, &null_ctl, true, true, true);
2286       assert(null_ctl->is_top(), "no null control here");
2287       dec_sp(1);
2288     } else if (_gvn.type(b)->speculative_always_null() &&
2289                !too_many_traps(Deoptimization::Reason_speculate_null_assert)) {
2290       inc_sp(1);
2291       b = null_assert(b);
2292       dec_sp(1);
2293     }
2294     c = _gvn.transform( new CmpPNode(b, a) );
2295     do_ifnull(btest, c);
2296     break;
2297 
2298   case Bytecodes::_if_acmpeq: btest = BoolTest::eq; goto handle_if_acmp;
2299   case Bytecodes::_if_acmpne: btest = BoolTest::ne; goto handle_if_acmp;
2300   handle_if_acmp:
2301     // If this is a backwards branch in the bytecodes, add Safepoint
2302     maybe_add_safepoint(iter().get_dest());
2303     a = pop();
2304     b = pop();
2305     c = _gvn.transform( new CmpPNode(b, a) );
2306     c = optimize_cmp_with_klass(c);
2307     do_if(btest, c);
2308     break;
2309 
2310   case Bytecodes::_ifeq: btest = BoolTest::eq; goto handle_ifxx;
2311   case Bytecodes::_ifne: btest = BoolTest::ne; goto handle_ifxx;
2312   case Bytecodes::_iflt: btest = BoolTest::lt; goto handle_ifxx;
2313   case Bytecodes::_ifle: btest = BoolTest::le; goto handle_ifxx;
2314   case Bytecodes::_ifgt: btest = BoolTest::gt; goto handle_ifxx;
2315   case Bytecodes::_ifge: btest = BoolTest::ge; goto handle_ifxx;
2316   handle_ifxx:
2317     // If this is a backwards branch in the bytecodes, add Safepoint
2318     maybe_add_safepoint(iter().get_dest());
2319     a = _gvn.intcon(0);
2320     b = pop();
2321     c = _gvn.transform( new CmpINode(b, a) );
2322     do_if(btest, c);
2323     break;
2324 
2325   case Bytecodes::_if_icmpeq: btest = BoolTest::eq; goto handle_if_icmp;




2285       b = null_check_oop(b, &null_ctl, true, true, true);
2286       assert(null_ctl->is_top(), "no null control here");
2287       dec_sp(1);
2288     } else if (_gvn.type(b)->speculative_always_null() &&
2289                !too_many_traps(Deoptimization::Reason_speculate_null_assert)) {
2290       inc_sp(1);
2291       b = null_assert(b);
2292       dec_sp(1);
2293     }
2294     c = _gvn.transform( new CmpPNode(b, a) );
2295     do_ifnull(btest, c);
2296     break;
2297 
2298   case Bytecodes::_if_acmpeq: btest = BoolTest::eq; goto handle_if_acmp;
2299   case Bytecodes::_if_acmpne: btest = BoolTest::ne; goto handle_if_acmp;
2300   handle_if_acmp:
2301     // If this is a backwards branch in the bytecodes, add Safepoint
2302     maybe_add_safepoint(iter().get_dest());
2303     a = pop();
2304     b = pop();
2305     c = _gvn.transform(acmp(a, b));
2306     c = optimize_cmp_with_klass(c);
2307     do_if(btest, c);
2308     break;
2309 
2310   case Bytecodes::_ifeq: btest = BoolTest::eq; goto handle_ifxx;
2311   case Bytecodes::_ifne: btest = BoolTest::ne; goto handle_ifxx;
2312   case Bytecodes::_iflt: btest = BoolTest::lt; goto handle_ifxx;
2313   case Bytecodes::_ifle: btest = BoolTest::le; goto handle_ifxx;
2314   case Bytecodes::_ifgt: btest = BoolTest::gt; goto handle_ifxx;
2315   case Bytecodes::_ifge: btest = BoolTest::ge; goto handle_ifxx;
2316   handle_ifxx:
2317     // If this is a backwards branch in the bytecodes, add Safepoint
2318     maybe_add_safepoint(iter().get_dest());
2319     a = _gvn.intcon(0);
2320     b = pop();
2321     c = _gvn.transform( new CmpINode(b, a) );
2322     do_if(btest, c);
2323     break;
2324 
2325   case Bytecodes::_if_icmpeq: btest = BoolTest::eq; goto handle_if_icmp;


< prev index next >