[TurboProp] Enable mid-tier register allocator for TurboProp

BUG=v8:9684

Change-Id: I064b552b021597a80e57303cab3c2fbf552be6a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2463228
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70427}
This commit is contained in:
Ross McIlroy 2020-10-09 14:46:45 +01:00 committed by Commit Bot
parent cb03097d7d
commit c97e79c06a
3 changed files with 4 additions and 5 deletions

View File

@ -149,6 +149,7 @@ class V8_EXPORT_PRIVATE OptimizedCompilationInfo final {
bool IsNativeContextIndependent() const {
return code_kind() == CodeKind::NATIVE_CONTEXT_INDEPENDENT;
}
bool IsTurboprop() const { return code_kind() == CodeKind::TURBOPROP; }
bool IsStub() const {
return code_kind() == CodeKind::DEOPT_ENTRIES_OR_FOR_TESTING;
}

View File

@ -3375,7 +3375,7 @@ bool PipelineImpl::SelectInstructions(Linkage* linkage) {
config = RegisterConfiguration::Default();
}
if (FLAG_turboprop_mid_tier_reg_alloc) {
if (data->info()->IsTurboprop() && FLAG_turboprop_mid_tier_reg_alloc) {
AllocateRegistersForMidTier(config, call_descriptor, run_verifier);
} else {
AllocateRegistersForTopTier(config, call_descriptor, run_verifier);
@ -3698,8 +3698,6 @@ void PipelineImpl::AllocateRegistersForMidTier(
data->sequence()->ValidateDeferredBlockEntryPaths();
data->sequence()->ValidateDeferredBlockExitPaths();
#endif
if (info()->is_osr()) data->osr_helper()->SetupFrame(data->frame());
data->InitializeMidTierRegisterAllocationData(config, call_descriptor);
TraceSequence(info(), data, "before register allocation");

View File

@ -549,8 +549,8 @@ DEFINE_BOOL(trace_generalization, false, "trace map generalization")
// Flags for TurboProp.
DEFINE_BOOL(turboprop, false, "enable experimental turboprop mid-tier compiler")
DEFINE_BOOL(turboprop_mid_tier_reg_alloc, false,
"enable experimental mid-tier register allocator")
DEFINE_BOOL(turboprop_mid_tier_reg_alloc, true,
"enable mid-tier register allocator for turboprop")
DEFINE_NEG_IMPLICATION(turboprop, turbo_inlining)
DEFINE_IMPLICATION(turboprop, concurrent_inlining)
DEFINE_VALUE_IMPLICATION(turboprop, interrupt_budget, 15 * KB)