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(); |
} |