Revision: 9866
Author:   [email protected]
Date:     Thu Nov  3 01:58:37 2011
Log:      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 <[email protected]>.
http://code.google.com/p/v8/source/detail?r=9866

Modified:
 /branches/bleeding_edge/src/mips/lithium-mips.cc

=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Tue Nov 1 09:13:05 2011 +++ /branches/bleeding_edge/src/mips/lithium-mips.cc Thu Nov 3 01:58:37 2011
@@ -750,7 +750,7 @@
   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 @@
   // 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