[interpreter] Deprecate --ignition-fallback-on-catch flag.
The current support for try-catch in the interpreter can handle most of the cases appearing in our test suite. Also the flag in question did not detect try-finally constructs. This removes the flag and instead extends the test expectations. R=rmcilroy@chromium.org BUG=v8:4674 LOG=n Review URL: https://codereview.chromium.org/1631593003 Cr-Commit-Position: refs/heads/master@{#33494}
This commit is contained in:
parent
b4b5110009
commit
b707ca4b54
@ -740,31 +740,12 @@ static bool CompileUnoptimizedCode(CompilationInfo* info) {
|
||||
}
|
||||
|
||||
|
||||
// TODO(rmcilroy): Remove this temporary work-around when ignition supports
|
||||
// catch and eval.
|
||||
static bool IgnitionShouldFallbackToFullCodeGen(Scope* scope) {
|
||||
if (scope->is_catch_scope()) {
|
||||
return true;
|
||||
}
|
||||
for (auto inner_scope : *scope->inner_scopes()) {
|
||||
if (IgnitionShouldFallbackToFullCodeGen(inner_scope)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static bool UseIgnition(CompilationInfo* info) {
|
||||
// Cannot use Ignition when the {function_data} is already used.
|
||||
if (info->has_shared_info() && info->shared_info()->HasBuiltinFunctionId()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Checks whether the scope chain is supported.
|
||||
if (FLAG_ignition_fallback_on_catch &&
|
||||
IgnitionShouldFallbackToFullCodeGen(info->scope())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Checks whether top level functions should be passed by the filter.
|
||||
if (info->closure().is_null()) {
|
||||
Vector<const char> filter = CStrVector(FLAG_ignition_filter);
|
||||
|
@ -298,8 +298,6 @@ DEFINE_BOOL(string_slices, true, "use string slices")
|
||||
// Flags for Ignition.
|
||||
DEFINE_BOOL(ignition, false, "use ignition interpreter")
|
||||
DEFINE_STRING(ignition_filter, "*", "filter for ignition interpreter")
|
||||
DEFINE_BOOL(ignition_fallback_on_catch, false,
|
||||
"fallback to full-codegen for functions which contain catch blocks")
|
||||
DEFINE_BOOL(print_bytecode, false,
|
||||
"print bytecode generated by ignition interpreter")
|
||||
DEFINE_BOOL(trace_ignition_codegen, false,
|
||||
|
@ -510,6 +510,18 @@
|
||||
'test-inobject-slack-tracking/*' : [SKIP],
|
||||
'test-serialize/*' : [SKIP],
|
||||
|
||||
# TODO(mstarzinger,4674): Message object is not properly cleared.
|
||||
'test-heap/MessageObjectLeak': [FAIL],
|
||||
|
||||
# TODO(mstarzinger,4674): Support exception handlers in BytecodeGraphBuilder.
|
||||
'test-run-deopt/DeoptExceptionHandlerCatch': [FAIL],
|
||||
'test-run-jsexceptions/Catch': [FAIL],
|
||||
'test-run-jsexceptions/CatchBreak': [FAIL],
|
||||
'test-run-jsexceptions/CatchCall': [FAIL],
|
||||
'test-run-jsexceptions/CatchNested': [FAIL],
|
||||
'test-run-jsexceptions/DeoptCatch': [FAIL],
|
||||
'test-run-jsexceptions/ThrowMessageIndirectly': [FAIL],
|
||||
|
||||
'test-api-interceptors/InterceptorCallICInvalidatedConstantFunctionViaGlobal': [SKIP],
|
||||
'test-api-interceptors/InterceptorLoadICInvalidatedCallbackViaGlobal': [SKIP],
|
||||
'test-api-interceptors/InterceptorLoadICInvalidatedFieldViaGlobal': [SKIP],
|
||||
@ -577,8 +589,11 @@
|
||||
'test-run-variables/StackLoadVariables': [SKIP],
|
||||
'test-run-variables/StackStoreVariables': [SKIP],
|
||||
'test-sampler-api/StackFramesConsistent': [SKIP],
|
||||
'test-thread-termination/TerminateAndReenterFromThreadItself': [SKIP],
|
||||
'test-thread-termination/TerminateCancelTerminateFromThreadItself': [SKIP],
|
||||
'test-thread-termination/TerminateFromOtherThreadWhileMicrotaskRunning': [SKIP],
|
||||
'test-thread-termination/TerminateOnlyV8ThreadFromOtherThread': [SKIP],
|
||||
'test-thread-termination/TerminateOnlyV8ThreadFromThreadItself': [SKIP],
|
||||
'test-thread-termination/TerminateOnlyV8ThreadFromThreadItselfNoLoop': [SKIP],
|
||||
'test-thread-termination/TerminationInInnerTryCall': [SKIP],
|
||||
'test-unscopables-hidden-prototype/Unscopables': [SKIP],
|
||||
|
@ -70,7 +70,6 @@ class BytecodeGraphTester {
|
||||
i::FLAG_ignition = true;
|
||||
i::FLAG_always_opt = false;
|
||||
i::FLAG_allow_natives_syntax = true;
|
||||
i::FLAG_ignition_fallback_on_catch = false;
|
||||
// Set ignition filter flag via SetFlagsFromString to avoid double-free
|
||||
// (or potential leak with StrDup() based on ownership confusion).
|
||||
ScopedVector<char> ignition_filter(64);
|
||||
|
@ -24,7 +24,6 @@ class BytecodeGeneratorHelper {
|
||||
|
||||
BytecodeGeneratorHelper() {
|
||||
i::FLAG_ignition = true;
|
||||
i::FLAG_ignition_fallback_on_catch = false;
|
||||
i::FLAG_ignition_filter = StrDup(kFunctionName);
|
||||
i::FLAG_always_opt = false;
|
||||
i::FLAG_allow_natives_syntax = true;
|
||||
|
@ -65,7 +65,6 @@ class InterpreterTester {
|
||||
bytecode_(bytecode),
|
||||
feedback_vector_(feedback_vector) {
|
||||
i::FLAG_ignition = true;
|
||||
i::FLAG_ignition_fallback_on_catch = false;
|
||||
i::FLAG_always_opt = false;
|
||||
// Set ignition filter flag via SetFlagsFromString to avoid double-free
|
||||
// (or potential leak with StrDup() based on ownership confusion).
|
||||
|
@ -755,6 +755,24 @@
|
||||
# TODO(bradnelson): Figure out why these tests fail with ignition.
|
||||
'wasm/*': [SKIP],
|
||||
|
||||
# TODO(mstarzinger,4674): Beginning of two "try" statements can overlap.
|
||||
'regress/regress-1213516': [SKIP],
|
||||
'regress/regress-444805': [SKIP],
|
||||
'regress/regress-86': [SKIP],
|
||||
'regress/regress-binop': [SKIP],
|
||||
'string-charat': [SKIP],
|
||||
|
||||
# TODO(4684): Support for "with" statements is missing.
|
||||
'regress/regress-1528': [FAIL],
|
||||
'regress/regress-2594': [FAIL],
|
||||
'regress/regress-410030': [FAIL],
|
||||
'regress/regress-96523': [FAIL],
|
||||
'regress/regress-crbug-505907': [FAIL],
|
||||
'regress/regress-crbug-506956': [FAIL],
|
||||
'strict-mode-implicit-receiver': [FAIL],
|
||||
'throw-and-catch-function': [FAIL],
|
||||
'with-leave': [FAIL],
|
||||
|
||||
'allocation-folding': [SKIP],
|
||||
'apply-arguments-gc-safepoint': [SKIP],
|
||||
'arguments-load-across-eval': [SKIP],
|
||||
@ -793,6 +811,8 @@
|
||||
'compiler/regress-variable-liveness': [SKIP],
|
||||
'compiler/rotate': [SKIP],
|
||||
'compiler/safepoint': [SKIP],
|
||||
'compiler/strict-recompile': [SKIP],
|
||||
'compiler/try-binop': [SKIP],
|
||||
'compiler/try-deopt': [SKIP],
|
||||
'compiler/uint32': [SKIP],
|
||||
'compiler/variables': [SKIP],
|
||||
@ -914,6 +934,7 @@
|
||||
'regress/regress-419663': [SKIP],
|
||||
'regress/regress-4214': [SKIP],
|
||||
'regress/regress-4255-4': [SKIP],
|
||||
'regress/regress-4266': [SKIP],
|
||||
'regress/regress-430201b': [SKIP],
|
||||
'regress/regress-430201': [SKIP],
|
||||
'regress/regress-4309-1': [SKIP],
|
||||
@ -1053,6 +1074,7 @@
|
||||
'string-slices': [SKIP],
|
||||
'tools/profviz': [SKIP],
|
||||
'try': [SKIP],
|
||||
'try-binop': [SKIP],
|
||||
'undetectable-compare': [SKIP],
|
||||
'unused-context-in-with': [SKIP],
|
||||
'value-wrapper': [SKIP],
|
||||
@ -1064,9 +1086,11 @@
|
||||
}], # ignition == True
|
||||
|
||||
['ignition == True and (arch == arm or arch == arm64)', {
|
||||
'apply': [SKIP],
|
||||
'array-constructor': [SKIP],
|
||||
'array-sort': [SKIP],
|
||||
'array-store-and-grow': [SKIP],
|
||||
'asm/construct-double': [SKIP],
|
||||
'compiler/division-by-constant': [SKIP],
|
||||
'compiler/osr-big': [SKIP],
|
||||
'compiler/osr-nested': [SKIP],
|
||||
@ -1085,6 +1109,7 @@
|
||||
'regress/regress-crbug-500497': [SKIP],
|
||||
'regress/regress-crbug-505007-1': [SKIP],
|
||||
'regress/regress-crbug-505007-2': [SKIP],
|
||||
'regress/regress-crbug-514081': [SKIP],
|
||||
'regress/regress-2193': [SKIP],
|
||||
'regress/regress-3158': [SKIP],
|
||||
'regress/regress-347904': [SKIP],
|
||||
|
@ -589,6 +589,21 @@
|
||||
'language/statements/generators/*': [SKIP],
|
||||
'language/statements/with/*': [SKIP],
|
||||
|
||||
# TODO(mstarzinger,4674): Beginning of two "try" statements can overlap.
|
||||
'language/statements/try/*': [SKIP],
|
||||
'built-ins/Object/defineProperties/15.2.3.7-2-18': [SKIP],
|
||||
'built-ins/Promise/S25.4.3.1_A2.3_T1': [SKIP],
|
||||
'built-ins/Promise/S25.4.3.1_A2.4_T1': [SKIP],
|
||||
'built-ins/Promise/S25.4.3.1_A4.1_T1': [SKIP],
|
||||
'built-ins/Promise/exception-after-resolve-in-executor': [SKIP],
|
||||
'built-ins/Promise/prototype/catch/S25.4.5.1_A3.1_T2': [SKIP],
|
||||
'built-ins/Promise/prototype/then/S25.4.2.1_A2.1_T1': [SKIP],
|
||||
'built-ins/Promise/prototype/then/S25.4.5.3_A4.1_T2': [SKIP],
|
||||
'built-ins/Promise/prototype/then/S25.4.5.3_A4.2_T2': [SKIP],
|
||||
'built-ins/Promise/prototype/then/on-fulfilled-throw': [SKIP],
|
||||
'language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-2': [SKIP],
|
||||
'language/block-scope/leave/verify-context-in-finally-block': [SKIP],
|
||||
|
||||
'built-ins/Array/prototype/concat/Array.prototype.concat_non-array': [SKIP],
|
||||
'built-ins/Date/prototype/toISOString/15.9.5.43-0-13': [SKIP],
|
||||
'built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A12': [SKIP],
|
||||
@ -602,6 +617,8 @@
|
||||
'built-ins/Object/prototype/valueOf/S15.2.4.4_A14': [SKIP],
|
||||
'built-ins/Object/prototype/valueOf/S15.2.4.4_A15': [SKIP],
|
||||
'built-ins/Promise/all/ctx-ctor': [SKIP],
|
||||
'built-ins/Promise/all/S25.4.4.1_A4.1_T1': [SKIP],
|
||||
'built-ins/Promise/prototype/then/on-rejected-throw': [SKIP],
|
||||
'built-ins/Promise/race/ctx-ctor': [SKIP],
|
||||
'built-ins/Promise/reject/ctx-ctor': [SKIP],
|
||||
'built-ins/Promise/resolve/ctx-ctor': [SKIP],
|
||||
|
@ -41,8 +41,7 @@ ALL_VARIANT_FLAGS = {
|
||||
"turbofan": [["--turbo"]],
|
||||
"turbofan_opt": [["--turbo", "--always-opt"]],
|
||||
"nocrankshaft": [["--nocrankshaft"]],
|
||||
"ignition": [["--ignition", "--turbo",
|
||||
"--ignition-fallback-on-catch"]],
|
||||
"ignition": [["--ignition", "--turbo"]],
|
||||
"preparser": [["--min-preparse-length=0"]],
|
||||
}
|
||||
|
||||
@ -52,8 +51,7 @@ FAST_VARIANT_FLAGS = {
|
||||
"stress": [["--stress-opt"]],
|
||||
"turbofan": [["--turbo"]],
|
||||
"nocrankshaft": [["--nocrankshaft"]],
|
||||
"ignition": [["--ignition", "--turbo",
|
||||
"--ignition-fallback-on-catch"]],
|
||||
"ignition": [["--ignition", "--turbo"]],
|
||||
"preparser": [["--min-preparse-length=0"]],
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user