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,
"not-too-far future")
DEFINE_IMPLICATION(future, turbo)
DEFINE_IMPLICATION(turbo, ignition)
// Flags for experimental implementation features.
DEFINE_BOOL(allocation_site_pretenuring, true,
"pretenure with allocation sites")
......@@ -316,7 +314,7 @@ DEFINE_BOOL(unbox_double_arrays, true, "automatically unbox arrays of doubles")
DEFINE_BOOL(string_slices, true, "use string slices")
// 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_elide_noneffectful_bytecodes, true,
"elide bytecodes which won't have any external effect")
......
......@@ -6702,12 +6702,12 @@ TEST(DebugGetPossibleBreakpointsReturnLocations) {
++returns_count;
}
}
if (i::FLAG_turbo) {
// With turbofan we generate one return location per return statement,
if (i::FLAG_ignition) {
// With Ignition we generate one return location per return statement,
// each has line = 5, column = 0 as statement position.
CHECK(returns_count == 4);
} else {
// Without turbofan we generate one return location.
// Without Ignition we generate one return location.
CHECK(returns_count == 1);
}
}
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --turbo
// Flags: --ignition
let {session, contextGroup, Protocol} = InspectorTest.start('Checks Debugger.getPossibleBreakpoints');
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --turbo
// Flags: --ignition
let {session, contextGroup, Protocol} = InspectorTest.start('Checks possible break locations.');
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// 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) {
const type_profile = %TypeProfile(name);
......@@ -36,7 +36,7 @@ testFunction(123, true);
testFunction('hello');
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);
testFunction(undefined);
......@@ -45,7 +45,7 @@ testFunction({x: 12}, true);
testFunction({x: 12});
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);
......@@ -53,7 +53,7 @@ function testReturnOfNonVariable() {
return 32;
}
testReturnOfNonVariable();
expected = `{\"1732\":[\"number\"]}`;
expected = `{\"1735\":[\"number\"]}`;
check_collect_types(testReturnOfNonVariable, expected);
// Return statement is reached but its expression is never really returned.
......@@ -65,7 +65,7 @@ function try_finally() {
}
}
try_finally();
expected = `{\"2034\":[\"string\"]}`;
expected = `{\"2037\":[\"string\"]}`;
check_collect_types(try_finally, expected);
// Fall-off return.
......@@ -73,7 +73,7 @@ function fall_off() {
//nothing
}
fall_off();
expected = `{\"2188\":[\"undefined\"]}`;
expected = `{\"2191\":[\"undefined\"]}`;
check_collect_types(fall_off, expected);
// Do not collect types when the function is never run.
......@@ -86,5 +86,5 @@ function several_params(a, b, c, d) {
//nothing
}
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);
......@@ -6,7 +6,7 @@
ALL_VARIANT_FLAGS = {
"default": [[]],
"stress": [["--stress-opt", "--always-opt"]],
"fullcode": [["--noopt", "--no-turbo"]],
"fullcode": [["--noopt", "--no-ignition"]],
# No optimization means disable all optimizations. OptimizeFunctionOnNextCall
# would not force optimization too. It turns into a Nop. Please see
# https://chromium-review.googlesource.com/c/452620/ for more discussion.
......@@ -19,7 +19,7 @@ ALL_VARIANT_FLAGS = {
FAST_VARIANT_FLAGS = {
"default": [[]],
"stress": [["--stress-opt"]],
"fullcode": [["--noopt", "--no-turbo"]],
"fullcode": [["--noopt", "--no-ignition"]],
# No optimization means disable all optimizations. OptimizeFunctionOnNextCall
# would not force optimization too. It turns into a Nop. Please see
# 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