equal
deleted
inserted
replaced
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"); |