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