[llvm] 942cc9a - Revert "[CodeGen] Don't include aliases in RegisterClassInfo::IgnoreCSRForAllocOrder (#80015)"
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 31 02:25:57 PST 2024
Author: Jay Foad
Date: 2024-01-31T10:25:51Z
New Revision: 942cc9a222343d18339d08516166cfe94445fd13
URL: https://github.com/llvm/llvm-project/commit/942cc9a222343d18339d08516166cfe94445fd13
DIFF: https://github.com/llvm/llvm-project/commit/942cc9a222343d18339d08516166cfe94445fd13.diff
LOG: Revert "[CodeGen] Don't include aliases in RegisterClassInfo::IgnoreCSRForAllocOrder (#80015)"
This reverts commit f8525030004f907cd108e7c18df255a6d3b23124.
It was supposed to speed things up but llvm-compile-time-tracker.com
showed a slight slow down.
Added:
Modified:
llvm/lib/CodeGen/RegisterClassInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/RegisterClassInfo.cpp b/llvm/lib/CodeGen/RegisterClassInfo.cpp
index 1dd595bc140cb..8869a861de061 100644
--- a/llvm/lib/CodeGen/RegisterClassInfo.cpp
+++ b/llvm/lib/CodeGen/RegisterClassInfo.cpp
@@ -93,9 +93,11 @@ void RegisterClassInfo::runOnMachineFunction(const MachineFunction &mf) {
// Even if CSR list is same, we could have had a
diff erent allocation order
// if ignoreCSRForAllocationOrder is evaluated
diff erently.
BitVector CSRHintsForAllocOrder(TRI->getNumRegs());
- for (MCPhysReg I = 1, E = TRI->getNumRegs(); I != E; ++I)
- CSRHintsForAllocOrder[I] = STI.ignoreCSRForAllocationOrder(mf, I);
- if (IgnoreCSRForAllocOrder != CSRHintsForAllocOrder) {
+ for (const MCPhysReg *I = CSR; *I; ++I)
+ for (MCRegAliasIterator AI(*I, TRI, true); AI.isValid(); ++AI)
+ CSRHintsForAllocOrder[*AI] = STI.ignoreCSRForAllocationOrder(mf, *AI);
+ if (IgnoreCSRForAllocOrder.size() != CSRHintsForAllocOrder.size() ||
+ IgnoreCSRForAllocOrder != CSRHintsForAllocOrder) {
Update = true;
IgnoreCSRForAllocOrder = CSRHintsForAllocOrder;
}
More information about the llvm-commits
mailing list