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