[llvm] [AMDGPU] Reorder GCNPassConfig::addOptimizedRegAlloc. NFC. (PR #115873)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 12 06:17:33 PST 2024
https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/115873
This just makes it so that the added passes are mentioned in this
function in the same order that they will appear in the final pass
pipeline.
>From 4558ab494ba0125172bcc3a36738cb5cd31e7beb Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Tue, 12 Nov 2024 11:52:56 +0000
Subject: [PATCH] [AMDGPU] Reorder GCNPassConfig::addOptimizedRegAlloc. NFC.
This just makes it so that the added passes are mentioned in this
function in the same order that they will appear in the final pass
pipeline.
---
.../lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 39 ++++++++++---------
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 786baa6820e860..06ed92e22e6539 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -1415,23 +1415,8 @@ void GCNPassConfig::addFastRegAlloc() {
}
void GCNPassConfig::addOptimizedRegAlloc() {
- // Allow the scheduler to run before SIWholeQuadMode inserts exec manipulation
- // instructions that cause scheduling barriers.
- insertPass(&MachineSchedulerID, &SIWholeQuadModeID);
-
- if (OptExecMaskPreRA)
- insertPass(&MachineSchedulerID, &SIOptimizeExecMaskingPreRAID);
-
- if (EnableRewritePartialRegUses)
- insertPass(&RenameIndependentSubregsID, &GCNRewritePartialRegUsesID);
-
- if (isPassEnabled(EnablePreRAOptimizations))
- insertPass(&RenameIndependentSubregsID, &GCNPreRAOptimizationsID);
-
- // This is not an essential optimization and it has a noticeable impact on
- // compilation time, so we only enable it from O2.
- if (TM->getOptLevel() > CodeGenOptLevel::Less)
- insertPass(&MachineSchedulerID, &SIFormMemoryClausesID);
+ if (EnableDCEInRA)
+ insertPass(&DetectDeadLanesID, &DeadMachineInstructionElimID);
// FIXME: when an instruction has a Killed operand, and the instruction is
// inside a bundle, seems only the BUNDLE instruction appears as the Kills of
@@ -1439,13 +1424,29 @@ void GCNPassConfig::addOptimizedRegAlloc() {
// we should fix it and enable the verifier.
if (OptVGPRLiveRange)
insertPass(&LiveVariablesID, &SIOptimizeVGPRLiveRangeID);
+
// This must be run immediately after phi elimination and before
// TwoAddressInstructions, otherwise the processing of the tied operand of
// SI_ELSE will introduce a copy of the tied operand source after the else.
insertPass(&PHIEliminationID, &SILowerControlFlowID);
- if (EnableDCEInRA)
- insertPass(&DetectDeadLanesID, &DeadMachineInstructionElimID);
+ if (EnableRewritePartialRegUses)
+ insertPass(&RenameIndependentSubregsID, &GCNRewritePartialRegUsesID);
+
+ if (isPassEnabled(EnablePreRAOptimizations))
+ insertPass(&RenameIndependentSubregsID, &GCNPreRAOptimizationsID);
+
+ // Allow the scheduler to run before SIWholeQuadMode inserts exec manipulation
+ // instructions that cause scheduling barriers.
+ insertPass(&MachineSchedulerID, &SIWholeQuadModeID);
+
+ if (OptExecMaskPreRA)
+ insertPass(&MachineSchedulerID, &SIOptimizeExecMaskingPreRAID);
+
+ // This is not an essential optimization and it has a noticeable impact on
+ // compilation time, so we only enable it from O2.
+ if (TM->getOptLevel() > CodeGenOptLevel::Less)
+ insertPass(&MachineSchedulerID, &SIFormMemoryClausesID);
TargetPassConfig::addOptimizedRegAlloc();
}
More information about the llvm-commits
mailing list