src/share/vm/c1/c1_Canonicalizer.cpp

Print this page

        

*** 725,735 **** } else { // successors differ => simplify to: IfInstanceOf set_canonical(new IfInstanceOf(inst->klass(), inst->obj(), true, inst->state_before()->bci(), is_inst_sux, no_inst_sux)); } } ! } else if (rt == objectNull && (l->as_NewInstance() || l->as_NewArray())) { if (x->cond() == Instruction::eql) { BlockBegin* sux = x->fsux(); set_canonical(new Goto(sux, x->state_before(), is_safepoint(x, sux))); } else { assert(x->cond() == Instruction::neq, "only other valid case"); --- 725,737 ---- } else { // successors differ => simplify to: IfInstanceOf set_canonical(new IfInstanceOf(inst->klass(), inst->obj(), true, inst->state_before()->bci(), is_inst_sux, no_inst_sux)); } } ! } else if (rt == objectNull && ! (l->as_NewInstance() || l->as_NewArray() || ! (l->as_Local() && l->as_Local()->is_receiver()))) { if (x->cond() == Instruction::eql) { BlockBegin* sux = x->fsux(); set_canonical(new Goto(sux, x->state_before(), is_safepoint(x, sux))); } else { assert(x->cond() == Instruction::neq, "only other valid case");