[llvm] [X86][BreakFalseDeps] Using reverse order for undef register selection (PR #137569)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 28 00:55:28 PDT 2025
================
@@ -142,7 +144,12 @@ void RegisterClassInfo::compute(const TargetRegisterClass *RC) const {
// FIXME: Once targets reserve registers instead of removing them from the
// allocation order, we can simply use begin/end here.
- ArrayRef<MCPhysReg> RawOrder = RC->getRawAllocationOrder(*MF);
+ ArrayRef<MCPhysReg> RawOrder = RC->getRawAllocationOrder(*MF, Reverse);
+ std::vector<MCPhysReg> ReverseOrder;
+ if (Reverse) {
+ llvm::append_range(ReverseOrder, reverse(RawOrder));
+ RawOrder = ArrayRef<MCPhysReg>(ReverseOrder);
+ }
----------------
phoebewang wrote:
Yes, this is to imitate the alternative allocation order way. Currently it's only controlled by target features. We want to control it through pass agrument too.
https://github.com/llvm/llvm-project/pull/137569
More information about the llvm-commits
mailing list