From: kmillikin@chromium.org Date: Thu, 3 Nov 2011 08:58:37 +0000 (+0000) Subject: MIPS: Add and use ElementsKind side effect X-Git-Tag: upstream/4.7.83~18015 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=224bbad462303885c4b1095e7badc0ee5c39d1be;p=platform%2Fupstream%2Fv8.git MIPS: Add and use ElementsKind side effect Port r9847 (fc7590). Original commit message: Also partition side effects into observable and not observable, with only observable requiring Simulates and non-observable changes able to participate in GVN and code hoisting. BUG= TEST= Review URL: http://codereview.chromium.org/8387044 Patch from Gergely Kis . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc index d024c24..a9a302c 100644 --- a/src/mips/lithium-mips.cc +++ b/src/mips/lithium-mips.cc @@ -750,7 +750,7 @@ LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr, instr->MarkAsCall(); instr = AssignPointerMap(instr); - if (hinstr->HasSideEffects()) { + if (hinstr->HasObservableSideEffects()) { ASSERT(hinstr->next()->IsSimulate()); HSimulate* sim = HSimulate::cast(hinstr->next()); instr = SetInstructionPendingDeoptimizationEnvironment( @@ -762,7 +762,8 @@ LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr, // Thus we still need to attach environment to this call even if // call sequence can not deoptimize eagerly. bool needs_environment = - (can_deoptimize == CAN_DEOPTIMIZE_EAGERLY) || !hinstr->HasSideEffects(); + (can_deoptimize == CAN_DEOPTIMIZE_EAGERLY) || + !hinstr->HasObservableSideEffects(); if (needs_environment && !instr->HasEnvironment()) { instr = AssignEnvironment(instr); }