[llvm] 2560505 - [AMDGPU] Reorder GCNPassConfig::addOptimizedRegAlloc. NFC. (#115873)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 13 06:38:31 PST 2024
Author: Jay Foad
Date: 2024-11-13T14:38:23Z
New Revision: 256050520380b271ff0ac1f01fa56d6665e9af03
URL: https://github.com/llvm/llvm-project/commit/256050520380b271ff0ac1f01fa56d6665e9af03
DIFF: https://github.com/llvm/llvm-project/commit/256050520380b271ff0ac1f01fa56d6665e9af03.diff
LOG: [AMDGPU] Reorder GCNPassConfig::addOptimizedRegAlloc. NFC. (#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.
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
Removed:
################################################################################
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