Reviewers: rossberg,
Message:
This is a second step towards regaining TurboFan test coverage. It makes
sure
that the "--always-opt --turbo-filter=*" combination of flags triggers
TurboFan,
not matter what the optimization decisions of the parser have been.
Description:
Allow --always-opt to go further into the pipeline (2).
[email protected]
Please review this at https://codereview.chromium.org/855873002/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+49, -16 lines):
M src/compiler.cc
M src/compiler/ast-graph-builder.cc
M test/cctest/cctest.status
M test/mjsunit/mjsunit.status
Index: src/compiler.cc
diff --git a/src/compiler.cc b/src/compiler.cc
index
544b4dd4595d0a07ec6a23a30bdc062882c5c4bc..dda4451a3d8466040c1da34ced6a28bf744a6222
100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -344,13 +344,7 @@ OptimizedCompileJob::Status
OptimizedCompileJob::CreateGraph() {
DCHECK(info()->IsOptimizing());
DCHECK(!info()->IsCompilingForDebugging());
- // Optimization could have been disabled by the parser.
- if (info()->shared_info()->optimization_disabled()) {
- return AbortOptimization(
- info()->shared_info()->disable_optimization_reason());
- }
-
- // Do not use crankshaft if we need to be able to set break points.
+ // Do not use Crankshaft/TurboFan if we need to be able to set break
points.
if (isolate()->DebuggerHasBreakPoints()) {
return RetryOptimization(kDebuggerHasBreakPoints);
}
@@ -441,6 +435,13 @@ OptimizedCompileJob::Status
OptimizedCompileJob::CreateGraph() {
// Type-check the function.
AstTyper::Run(info());
+ // Optimization could have been disabled by the parser. Note that this
check
+ // is only needed because the Hydrogen graph builder is missing some
bailouts.
+ if (info()->shared_info()->optimization_disabled()) {
+ return AbortOptimization(
+ info()->shared_info()->disable_optimization_reason());
+ }
+
graph_builder_ = (FLAG_hydrogen_track_positions || FLAG_trace_ic)
? new(info()->zone()) HOptimizedGraphBuilderWithPositions(info())
: new(info()->zone()) HOptimizedGraphBuilder(info());
Index: src/compiler/ast-graph-builder.cc
diff --git a/src/compiler/ast-graph-builder.cc
b/src/compiler/ast-graph-builder.cc
index
c4b9b31bcee45b8a10661526adc3d96be7bd322a..3acb57acb25b3072767584a3499d13ffcec299dd
100644
--- a/src/compiler/ast-graph-builder.cc
+++ b/src/compiler/ast-graph-builder.cc
@@ -809,12 +809,14 @@ void
AstGraphBuilder::VisitForOfStatement(ForOfStatement* stmt) {
void AstGraphBuilder::VisitTryCatchStatement(TryCatchStatement* stmt) {
- UNREACHABLE();
+ // TODO(turbofan): Implement try-catch here.
+ SetStackOverflow();
}
void AstGraphBuilder::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
- UNREACHABLE();
+ // TODO(turbofan): Implement try-catch here.
+ SetStackOverflow();
}
@@ -1305,11 +1307,8 @@ void AstGraphBuilder::VisitAssignment(Assignment*
expr) {
void AstGraphBuilder::VisitYield(Yield* expr) {
- VisitForValue(expr->generator_object());
- VisitForValue(expr->expression());
- environment()->Pop();
- environment()->Pop();
- // TODO(turbofan): VisitYield
+ // TODO(turbofan): Implement yield here.
+ SetStackOverflow();
ast_context()->ProduceValue(jsgraph()->UndefinedConstant());
}
@@ -1402,7 +1401,7 @@ void AstGraphBuilder::VisitCall(Call* expr) {
break;
}
case Call::SUPER_CALL: {
- // todo(dslomov): implement super calls in turbofan.
+ // TODO(dslomov): Implement super calls.
UNIMPLEMENTED();
break;
}
@@ -1726,7 +1725,9 @@ void AstGraphBuilder::VisitThisFunction(ThisFunction*
expr) {
void AstGraphBuilder::VisitSuperReference(SuperReference* expr) {
- UNREACHABLE();
+ // TODO(turbofan): Implement super here.
+ SetStackOverflow();
+ ast_context()->ProduceValue(jsgraph()->UndefinedConstant());
}
Index: test/cctest/cctest.status
diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status
index
bb3cc6cbc01308ce2f96b0812392560be082fc05..13faf3dd8095e12dd15e2f7ebc8df8ee0b515526
100644
--- a/test/cctest/cctest.status
+++ b/test/cctest/cctest.status
@@ -90,6 +90,14 @@
# BUG(3742).
'test-mark-compact/MarkCompactCollector': [PASS, ['arch==arm',
NO_VARIANTS]],
+ # TODO(mstarzinger): Investigate and fix this.
+ 'test-api/SetFunctionEntryHook': [PASS, NO_VARIANTS],
+
+ # TODO(jarin/mstarzinger): Investigate debugger issues with TurboFan.
+ 'test-debug/DebugStepNatives': [PASS, NO_VARIANTS],
+ 'test-debug/DebugStepFunctionApply': [PASS, NO_VARIANTS],
+ 'test-debug/DebugStepFunctionCall': [PASS, NO_VARIANTS],
+
# TODO(jarin): Some tests don't like --turbo-deoptimzation very much.
'test-api/ApiUncaughtExceptionInObjectObserve': [PASS, NO_VARIANTS],
'test-api/GetPrototypeAccessControl': [PASS, NO_VARIANTS],
Index: test/mjsunit/mjsunit.status
diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status
index
1f28e95944f6ffe9f6102952f027eb02414d6e14..fe260f4126bcaaf3b6df5cdb015da4791d585c88
100644
--- a/test/mjsunit/mjsunit.status
+++ b/test/mjsunit/mjsunit.status
@@ -67,8 +67,10 @@
'array-feedback': [PASS, NO_VARIANTS],
'compare-known-objects-slow': [PASS, NO_VARIANTS],
'elements-kind': [PASS, NO_VARIANTS],
+ 'opt-elements-kind': [PASS, NO_VARIANTS],
# Some tests are just too slow to run for now.
+ 'big-object-literal': [PASS, NO_VARIANTS],
'bit-not': [PASS, NO_VARIANTS],
'json2': [PASS, NO_VARIANTS],
'packed-elements': [PASS, NO_VARIANTS],
@@ -82,6 +84,24 @@
# not work, but we expect it to not crash.
'debug-step-turbofan': [PASS, FAIL],
+ # TODO(jarin/mstarzinger): Investigate debugger issues with TurboFan.
+ 'debug-evaluate-const': [PASS, NO_VARIANTS],
+ 'debug-evaluate-locals': [PASS, NO_VARIANTS],
+ 'debug-liveedit-double-call': [PASS, NO_VARIANTS],
+ 'debug-step-stub-callfunction': [PASS, NO_VARIANTS],
+ 'debug-set-variable-value': [PASS, NO_VARIANTS],
+ 'debug-stepin-accessor': [PASS, NO_VARIANTS],
+ 'debug-stepin-builtin': [PASS, NO_VARIANTS],
+ 'debug-stepin-constructor': [PASS, NO_VARIANTS],
+ 'debug-stepin-function-call': [PASS, NO_VARIANTS],
+ 'debug-stepnext-do-while': [PASS, NO_VARIANTS],
+ 'debug-stepout-scope-part1': [PASS, NO_VARIANTS],
+ 'debug-stepout-scope-part2': [PASS, NO_VARIANTS],
+ 'debug-stepout-scope-part3': [PASS, NO_VARIANTS],
+ 'es6/debug-stepin-microtasks': [PASS, NO_VARIANTS],
+ 'es6/debug-stepnext-for': [PASS, NO_VARIANTS],
+ 'harmony/debug-evaluate-blockscopes': [PASS, NO_VARIANTS],
+
# TODO(jarin): Some tests don't like --turbo-deoptimzation very much.
'asm/embenchen/lua_binarytrees': [SKIP],
'es6/symbols': [PASS, NO_VARIANTS],
@@ -90,6 +110,9 @@
'regress/regress-354433': [PASS, NO_VARIANTS], # only on ARM simulator.
'regress/regress-crbug-259300': [PASS, NO_VARIANTS],
+ # TODO(dslomov): Implement super calls.
+ 'harmony/super': [PASS, NO_VARIANTS],
+
# TODO(arv): TurboFan does not yet add [[HomeObject]] as needed.
'harmony/object-literals-super': [PASS, NO_VARIANTS],
--
--
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.