hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
changeset 33638 ef49ed90010b
parent 33589 7cbd1b2c139b
parent 33633 8a83967eb351
child 36058 caff909b4e1f
equal deleted inserted replaced
33626:3c94db05e903 33638:ef49ed90010b
   726       } else {
   726       } else {
   727         // successors differ => simplify to: IfInstanceOf
   727         // successors differ => simplify to: IfInstanceOf
   728         set_canonical(new IfInstanceOf(inst->klass(), inst->obj(), true, inst->state_before()->bci(), is_inst_sux, no_inst_sux));
   728         set_canonical(new IfInstanceOf(inst->klass(), inst->obj(), true, inst->state_before()->bci(), is_inst_sux, no_inst_sux));
   729       }
   729       }
   730     }
   730     }
   731   } else if (rt == objectNull && (l->as_NewInstance() || l->as_NewArray())) {
   731   } else if (rt == objectNull &&
       
   732            (l->as_NewInstance() || l->as_NewArray() ||
       
   733              (UseNewCode && l->as_Local() && l->as_Local()->is_receiver()))) {
   732     if (x->cond() == Instruction::eql) {
   734     if (x->cond() == Instruction::eql) {
   733       BlockBegin* sux = x->fsux();
   735       BlockBegin* sux = x->fsux();
   734       set_canonical(new Goto(sux, x->state_before(), is_safepoint(x, sux)));
   736       set_canonical(new Goto(sux, x->state_before(), is_safepoint(x, sux)));
   735     } else {
   737     } else {
   736       assert(x->cond() == Instruction::neq, "only other valid case");
   738       assert(x->cond() == Instruction::neq, "only other valid case");