Reviewers: danno, Paul Lind,

Message:
Please land the following commits together to avoid build errors:
http://codereview.chromium.org/8384021/
http://codereview.chromium.org/8428004/
http://codereview.chromium.org/8387044/
http://codereview.chromium.org/8432010/

Thank you.

Description:
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=


Please review this at http://codereview.chromium.org/8387044/

Affected files:
  M src/mips/lithium-mips.cc


Index: src/mips/lithium-mips.cc
diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc
index 6483715abb7ce3a91dee075f37cc1a8f219b4005..0daa57ea368e4d8e30a5cffa38083c2c263029f2 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);
   }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to