Commit 4e86ae8c authored by Michael Starzinger's avatar Michael Starzinger Committed by Commit Bot

Decouple the --ignition from the --turbo flag.

Both Ignition and TurboFan have been enabled by default for a while.
This just disentangles the implication between those two flags and sets
the --ignition individually. They can now be controlled individually.

R=rmcilroy@chromium.org
BUG=v8:6408

Change-Id: I08eca85120160efa5868b5ca36d1613964ed82eb
Reviewed-on: https://chromium-review.googlesource.com/527637Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45800}
parent d7dbf7b3
...@@ -269,8 +269,6 @@ DEFINE_BOOL(future, FUTURE_BOOL, ...@@ -269,8 +269,6 @@ DEFINE_BOOL(future, FUTURE_BOOL,
"not-too-far future") "not-too-far future")
DEFINE_IMPLICATION(future, turbo) DEFINE_IMPLICATION(future, turbo)
DEFINE_IMPLICATION(turbo, ignition)
// Flags for experimental implementation features. // Flags for experimental implementation features.
DEFINE_BOOL(allocation_site_pretenuring, true, DEFINE_BOOL(allocation_site_pretenuring, true,
"pretenure with allocation sites") "pretenure with allocation sites")
...@@ -316,7 +314,7 @@ DEFINE_BOOL(unbox_double_arrays, true, "automatically unbox arrays of doubles") ...@@ -316,7 +314,7 @@ DEFINE_BOOL(unbox_double_arrays, true, "automatically unbox arrays of doubles")
DEFINE_BOOL(string_slices, true, "use string slices") DEFINE_BOOL(string_slices, true, "use string slices")
// Flags for Ignition. // Flags for Ignition.
DEFINE_BOOL(ignition, false, "use ignition interpreter") DEFINE_BOOL(ignition, true, "use ignition interpreter")
DEFINE_BOOL(ignition_osr, true, "enable support for OSR from ignition code") DEFINE_BOOL(ignition_osr, true, "enable support for OSR from ignition code")
DEFINE_BOOL(ignition_elide_noneffectful_bytecodes, true, DEFINE_BOOL(ignition_elide_noneffectful_bytecodes, true,
"elide bytecodes which won't have any external effect") "elide bytecodes which won't have any external effect")
......
...@@ -6702,12 +6702,12 @@ TEST(DebugGetPossibleBreakpointsReturnLocations) { ...@@ -6702,12 +6702,12 @@ TEST(DebugGetPossibleBreakpointsReturnLocations) {
++returns_count; ++returns_count;
} }
} }
if (i::FLAG_turbo) { if (i::FLAG_ignition) {
// With turbofan we generate one return location per return statement, // With Ignition we generate one return location per return statement,
// each has line = 5, column = 0 as statement position. // each has line = 5, column = 0 as statement position.
CHECK(returns_count == 4); CHECK(returns_count == 4);
} else { } else {
// Without turbofan we generate one return location. // Without Ignition we generate one return location.
CHECK(returns_count == 1); CHECK(returns_count == 1);
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --turbo // Flags: --ignition
let {session, contextGroup, Protocol} = InspectorTest.start('Checks Debugger.getPossibleBreakpoints'); let {session, contextGroup, Protocol} = InspectorTest.start('Checks Debugger.getPossibleBreakpoints');
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --turbo // Flags: --ignition
let {session, contextGroup, Protocol} = InspectorTest.start('Checks possible break locations.'); let {session, contextGroup, Protocol} = InspectorTest.start('Checks possible break locations.');
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --type-profile --turbo --allow-natives-syntax // Flags: --type-profile --ignition --allow-natives-syntax
function check_collect_types(name, expected) { function check_collect_types(name, expected) {
const type_profile = %TypeProfile(name); const type_profile = %TypeProfile(name);
...@@ -36,7 +36,7 @@ testFunction(123, true); ...@@ -36,7 +36,7 @@ testFunction(123, true);
testFunction('hello'); testFunction('hello');
testFunction(123); testFunction(123);
expected = `{\"503\":[\"Object\",\"number\",\"string\",\"number\"],\"510\":[\"undefined\",\"boolean\",\"undefined\",\"undefined\"],\"699\":[\"Object\",\"number\",\"string\",\"number\"]}`; expected = `{\"506\":[\"Object\",\"number\",\"string\",\"number\"],\"513\":[\"undefined\",\"boolean\",\"undefined\",\"undefined\"],\"702\":[\"Object\",\"number\",\"string\",\"number\"]}`;
check_collect_types(testFunction, expected); check_collect_types(testFunction, expected);
testFunction(undefined); testFunction(undefined);
...@@ -45,7 +45,7 @@ testFunction({x: 12}, true); ...@@ -45,7 +45,7 @@ testFunction({x: 12}, true);
testFunction({x: 12}); testFunction({x: 12});
testFunction(new MyClass()); testFunction(new MyClass());
expected = `{\"503\":[\"Object\",\"number\",\"string\",\"number\",\"undefined\",\"string\",\"Object\",\"Object\",\"MyClass\"],\"510\":[\"undefined\",\"boolean\",\"undefined\",\"undefined\",\"undefined\",\"boolean\",\"boolean\",\"undefined\",\"undefined\"],\"699\":[\"Object\",\"number\",\"string\",\"number\",\"undefined\",\"string\",\"Object\",\"Object\",\"MyClass\"]}`; expected = `{\"506\":[\"Object\",\"number\",\"string\",\"number\",\"undefined\",\"string\",\"Object\",\"Object\",\"MyClass\"],\"513\":[\"undefined\",\"boolean\",\"undefined\",\"undefined\",\"undefined\",\"boolean\",\"boolean\",\"undefined\",\"undefined\"],\"702\":[\"Object\",\"number\",\"string\",\"number\",\"undefined\",\"string\",\"Object\",\"Object\",\"MyClass\"]}`;
check_collect_types(testFunction, expected); check_collect_types(testFunction, expected);
...@@ -53,7 +53,7 @@ function testReturnOfNonVariable() { ...@@ -53,7 +53,7 @@ function testReturnOfNonVariable() {
return 32; return 32;
} }
testReturnOfNonVariable(); testReturnOfNonVariable();
expected = `{\"1732\":[\"number\"]}`; expected = `{\"1735\":[\"number\"]}`;
check_collect_types(testReturnOfNonVariable, expected); check_collect_types(testReturnOfNonVariable, expected);
// Return statement is reached but its expression is never really returned. // Return statement is reached but its expression is never really returned.
...@@ -65,7 +65,7 @@ function try_finally() { ...@@ -65,7 +65,7 @@ function try_finally() {
} }
} }
try_finally(); try_finally();
expected = `{\"2034\":[\"string\"]}`; expected = `{\"2037\":[\"string\"]}`;
check_collect_types(try_finally, expected); check_collect_types(try_finally, expected);
// Fall-off return. // Fall-off return.
...@@ -73,7 +73,7 @@ function fall_off() { ...@@ -73,7 +73,7 @@ function fall_off() {
//nothing //nothing
} }
fall_off(); fall_off();
expected = `{\"2188\":[\"undefined\"]}`; expected = `{\"2191\":[\"undefined\"]}`;
check_collect_types(fall_off, expected); check_collect_types(fall_off, expected);
// Do not collect types when the function is never run. // Do not collect types when the function is never run.
...@@ -86,5 +86,5 @@ function several_params(a, b, c, d) { ...@@ -86,5 +86,5 @@ function several_params(a, b, c, d) {
//nothing //nothing
} }
several_params(2, 'foo', {}, new MyClass()); several_params(2, 'foo', {}, new MyClass());
expected = `{\"2456\":[\"number\"],\"2459\":[\"string\"],\"2462\":[\"Object\"],\"2465\":[\"MyClass\"],\"2482\":[\"undefined\"]}`; expected = `{\"2459\":[\"number\"],\"2462\":[\"string\"],\"2465\":[\"Object\"],\"2468\":[\"MyClass\"],\"2485\":[\"undefined\"]}`;
check_collect_types(several_params, expected); check_collect_types(several_params, expected);
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
ALL_VARIANT_FLAGS = { ALL_VARIANT_FLAGS = {
"default": [[]], "default": [[]],
"stress": [["--stress-opt", "--always-opt"]], "stress": [["--stress-opt", "--always-opt"]],
"fullcode": [["--noopt", "--no-turbo"]], "fullcode": [["--noopt", "--no-ignition"]],
# No optimization means disable all optimizations. OptimizeFunctionOnNextCall # No optimization means disable all optimizations. OptimizeFunctionOnNextCall
# would not force optimization too. It turns into a Nop. Please see # would not force optimization too. It turns into a Nop. Please see
# https://chromium-review.googlesource.com/c/452620/ for more discussion. # https://chromium-review.googlesource.com/c/452620/ for more discussion.
...@@ -19,7 +19,7 @@ ALL_VARIANT_FLAGS = { ...@@ -19,7 +19,7 @@ ALL_VARIANT_FLAGS = {
FAST_VARIANT_FLAGS = { FAST_VARIANT_FLAGS = {
"default": [[]], "default": [[]],
"stress": [["--stress-opt"]], "stress": [["--stress-opt"]],
"fullcode": [["--noopt", "--no-turbo"]], "fullcode": [["--noopt", "--no-ignition"]],
# No optimization means disable all optimizations. OptimizeFunctionOnNextCall # No optimization means disable all optimizations. OptimizeFunctionOnNextCall
# would not force optimization too. It turns into a Nop. Please see # would not force optimization too. It turns into a Nop. Please see
# https://chromium-review.googlesource.com/c/452620/ for more discussion. # https://chromium-review.googlesource.com/c/452620/ for more discussion.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment