[regalloc] Make turbo_preprocess_ranges the default

This CL removes the flag '--turbo-preprocess-ranges' and enables it by
default.

If FLAG_turbo_control_flow_aware_allocation is set,
--turbo-preprocess-ranges is disabled and control flow aware
allocation is enabled instead.

Bug: v8:9088
Change-Id: I81d56f15efc8f765e317aa828d27f415f8b7fd40
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585725
Auto-Submit: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61070}
This commit is contained in:
Sigurd Schneider 2019-04-26 10:13:03 +02:00 committed by Commit Bot
parent 82103a954e
commit edffb7d322
3 changed files with 7 additions and 16 deletions

View File

@ -439,12 +439,8 @@ DEFINE_BOOL(print_deopt_stress, false, "print number of possible deopt points")
// Flags for TurboFan.
DEFINE_BOOL(turbo_sp_frame_access, false,
"use stack pointer-relative access to frame wherever possible")
DEFINE_BOOL(turbo_preprocess_ranges, true,
"run pre-register allocation heuristics")
DEFINE_BOOL(turbo_control_flow_aware_allocation, false,
"consider control flow while allocating registers")
DEFINE_NEG_IMPLICATION(turbo_control_flow_aware_allocation,
turbo_preprocess_ranges)
DEFINE_STRING(turbo_filter, "*", "optimization filter for TurboFan compiler")
DEFINE_BOOL(trace_turbo, false, "trace generated TurboFan IR")

View File

@ -91,8 +91,7 @@ void OptimizedCompilationInfo::ConfigureFlags() {
if (FLAG_turbo_control_flow_aware_allocation) {
MarkAsTurboControlFlowAwareAllocation();
}
if (FLAG_turbo_preprocess_ranges) {
} else {
MarkAsTurboPreprocessRanges();
}
}

View File

@ -625,22 +625,18 @@ TEST_F(RegisterAllocatorTest, SingleDeferredBlockSpill) {
const int var_def_index = 1;
const int call_index = 3;
const bool spill_in_deferred =
FLAG_turbo_preprocess_ranges || FLAG_turbo_control_flow_aware_allocation;
int expect_no_moves = spill_in_deferred ? var_def_index : call_index;
int expect_spill_move = spill_in_deferred ? call_index : var_def_index;
// We should have no parallel moves at the "expect_no_moves" position.
// We should have no parallel moves at the "var_def_index" position.
EXPECT_EQ(
0, GetParallelMoveCount(expect_no_moves, Instruction::START, sequence()));
0, GetParallelMoveCount(var_def_index, Instruction::START, sequence()));
// The spill should be performed at the position expect_spill_move.
EXPECT_TRUE(IsParallelMovePresent(expect_spill_move, Instruction::START,
sequence(), Reg(0), Slot(0)));
// The spill should be performed at the position "call_index".
EXPECT_TRUE(IsParallelMovePresent(call_index, Instruction::START, sequence(),
Reg(0), Slot(0)));
}
TEST_F(RegisterAllocatorTest, MultipleDeferredBlockSpills) {
if (!FLAG_turbo_preprocess_ranges) return;
if (FLAG_turbo_control_flow_aware_allocation) return;
StartBlock(); // B0
auto var1 = EmitOI(Reg(0));