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 <gergely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
7dac2367c0
commit
224bbad462
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user