Chromium Code Reviews| Index: src/compiler/frame-elider.cc |
| diff --git a/src/compiler/frame-elider.cc b/src/compiler/frame-elider.cc |
| index 172a724dd8a744dce535f47f96ec9f1342d3d4d1..680c2197e446b5bdb9f5c68859cf0cb89a862bd3 100644 |
| --- a/src/compiler/frame-elider.cc |
| +++ b/src/compiler/frame-elider.cc |
| @@ -2,8 +2,9 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "src/base/adapters.h" |
| #include "src/compiler/frame-elider.h" |
| +#include "src/base/adapters.h" |
| +#include "src/compiler/linkage.h" |
| namespace v8 { |
| namespace internal { |
| @@ -11,8 +12,12 @@ namespace compiler { |
| FrameElider::FrameElider(InstructionSequence* code) : code_(code) {} |
| -void FrameElider::Run() { |
| - MarkBlocks(); |
| +void FrameElider::Run(const CallDescriptor* descriptor) { |
| + if (descriptor != nullptr && descriptor->RequiresFrameAsIncoming()) { |
|
danno
2016/03/18 18:13:00
Passing in the CallDescriptor here seems weird. I
Mircea Trofin
2016/03/18 18:22:31
Done.
|
| + instruction_blocks()[0]->mark_needs_frame(); |
| + } else { |
| + MarkBlocks(); |
| + } |
| PropagateMarks(); |
| MarkDeConstruction(); |
| } |