[llvm] [AArch64] Mark GPR64arg register class as non-allocatable (PR #212457)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 29 01:25:26 PDT 2026
================
@@ -425,14 +429,14 @@ bool InlineAsmLowering::lowerInlineAsm(
// We need the tied input to live in the same register class as the def.
//
// - if Def is a vreg, we can just use its regclass.
- // - if Def is a physreg, create a vreg in the minimal regclass for that
- // physreg.
+ // - if Def is a physreg, create a vreg in the regclass selected for its
+ // constraint.
//
// Otherwise RegBankSelect may leave it in the wrong bank (e.g. GPR even
// though it's tied to an FP physreg).
- const TargetRegisterClass *RC = Def.isVirtual()
- ? MRI->getRegClass(Def)
- : TRI->getMinimalPhysRegClass(Def);
+ const TargetRegisterClass *RC =
+ Def.isVirtual() ? MRI->getRegClass(Def) : OpInfo.RegClass;
+ assert(RC && "Expected a register class for matching constraint");
----------------
arsenm wrote:
OK, in that case it's not necessary. getRegistersForValue should trivially return an allocatable class
https://github.com/llvm/llvm-project/pull/212457
More information about the llvm-commits
mailing list