| Index: src/ia32/lithium-ia32.cc
|
| ===================================================================
|
| --- src/ia32/lithium-ia32.cc (revision 11356)
|
| +++ src/ia32/lithium-ia32.cc (working copy)
|
| @@ -729,22 +729,6 @@
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::SetInstructionPendingDeoptimizationEnvironment(
|
| - LInstruction* instr, int ast_id) {
|
| - ASSERT(instruction_pending_deoptimization_environment_ == NULL);
|
| - ASSERT(pending_deoptimization_ast_id_ == AstNode::kNoNumber);
|
| - instruction_pending_deoptimization_environment_ = instr;
|
| - pending_deoptimization_ast_id_ = ast_id;
|
| - return instr;
|
| -}
|
| -
|
| -
|
| -void LChunkBuilder::ClearInstructionPendingDeoptimizationEnvironment() {
|
| - instruction_pending_deoptimization_environment_ = NULL;
|
| - pending_deoptimization_ast_id_ = AstNode::kNoNumber;
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr,
|
| HInstruction* hinstr,
|
| CanDeoptimize can_deoptimize) {
|
| @@ -757,8 +741,10 @@
|
| if (hinstr->HasObservableSideEffects()) {
|
| ASSERT(hinstr->next()->IsSimulate());
|
| HSimulate* sim = HSimulate::cast(hinstr->next());
|
| - instr = SetInstructionPendingDeoptimizationEnvironment(
|
| - instr, sim->ast_id());
|
| + ASSERT(instruction_pending_deoptimization_environment_ == NULL);
|
| + ASSERT(pending_deoptimization_ast_id_ == AstNode::kNoNumber);
|
| + instruction_pending_deoptimization_environment_ = instr;
|
| + pending_deoptimization_ast_id_ = sim->ast_id();
|
| }
|
|
|
| // If instruction does not have side-effects lazy deoptimization
|
| @@ -776,12 +762,6 @@
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::MarkAsSaveDoubles(LInstruction* instr) {
|
| - instr->MarkAsSaveDoubles();
|
| - return instr;
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::AssignPointerMap(LInstruction* instr) {
|
| ASSERT(!instr->HasPointerMap());
|
| instr->set_pointer_map(new(zone()) LPointerMap(position_));
|
| @@ -2348,9 +2328,12 @@
|
| ASSERT(pending_deoptimization_ast_id_ == instr->ast_id());
|
| LLazyBailout* lazy_bailout = new(zone()) LLazyBailout;
|
| LInstruction* result = AssignEnvironment(lazy_bailout);
|
| + // Store the lazy deopt environment with the instruction if needed. Right
|
| + // now it is only used for LInstanceOfKnownGlobal.
|
| instruction_pending_deoptimization_environment_->
|
| - set_deoptimization_environment(result->environment());
|
| - ClearInstructionPendingDeoptimizationEnvironment();
|
| + SetDeferredLazyDeoptimizationEnvironment(result->environment());
|
| + instruction_pending_deoptimization_environment_ = NULL;
|
| + pending_deoptimization_ast_id_ = AstNode::kNoNumber;
|
| return result;
|
| }
|
|
|
|
|