Reviewers: Michael Starzinger,
Message:
PTAL
Description:
Add classes-related bailout reasons to DONT_TURBOFAN_NODE
[email protected]
Please review this at https://codereview.chromium.org/636883002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+6, -2 lines):
M src/ast.cc
M src/compiler/pipeline.cc
Index: src/ast.cc
diff --git a/src/ast.cc b/src/ast.cc
index
90320f7773b01020aa74223037a6be7ae43e27a5..6deaae51c81187da45b0f65af33131b3c2ddfcdd
100644
--- a/src/ast.cc
+++ b/src/ast.cc
@@ -1090,16 +1090,17 @@ DONT_OPTIMIZE_NODE(ModuleUrl)
DONT_OPTIMIZE_NODE(ModuleStatement)
DONT_OPTIMIZE_NODE(WithStatement)
DONT_OPTIMIZE_NODE(DebuggerStatement)
-DONT_OPTIMIZE_NODE(ClassLiteral)
DONT_OPTIMIZE_NODE(NativeFunctionLiteral)
-DONT_OPTIMIZE_NODE(SuperReference)
DONT_OPTIMIZE_NODE_WITH_FEEDBACK_SLOTS(Yield)
// TODO(turbofan): Remove the dont_turbofan_reason once this list is empty.
+// This list must be kept in sync with Pipeline::GenerateCode.
DONT_TURBOFAN_NODE(ForOfStatement)
DONT_TURBOFAN_NODE(TryCatchStatement)
DONT_TURBOFAN_NODE(TryFinallyStatement)
+DONT_TURBOFAN_NODE(ClassLiteral)
+DONT_TURBOFAN_NODE(SuperReference)
DONT_SELFOPTIMIZE_NODE(DoWhileStatement)
DONT_SELFOPTIMIZE_NODE(WhileStatement)
Index: src/compiler/pipeline.cc
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
index
d1c9dcdbcb7680a25fc6f3815dc316d942acbfdf..ca58e173bdb27c7574f6123f83328a626817c18c
100644
--- a/src/compiler/pipeline.cc
+++ b/src/compiler/pipeline.cc
@@ -166,12 +166,15 @@ static void TraceSchedule(Schedule* schedule) {
Handle<Code> Pipeline::GenerateCode() {
+ // This list must be kept in sync with DONT_TURBOFAN_NODE in ast.cc.
if (info()->function()->dont_optimize_reason() == kTryCatchStatement ||
info()->function()->dont_optimize_reason() == kTryFinallyStatement ||
// TODO(turbofan): Make ES6 for-of work and remove this bailout.
info()->function()->dont_optimize_reason() == kForOfStatement ||
// TODO(turbofan): Make super work and remove this bailout.
info()->function()->dont_optimize_reason() == kSuperReference ||
+ // TODO(turbofan): Make classliterals work and remove this bailout.
+ info()->function()->dont_optimize_reason() == kClassLiteral ||
// TODO(turbofan): Make OSR work and remove this bailout.
info()->is_osr()) {
return Handle<Code>::null();
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.