[clang] [llvm] Implement `preserve_none` for 32-bit x86 (PR #150106)
Brandt Bucher via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 1 11:39:32 PDT 2025
brandtbucher wrote:
> Function X86FrameLowering::spillFPBP can do this for clobbered base pointer and frame pointer.
So the `RBX`/`ESI` base pointers can be removed from the callee-saved-regs lists?
```diff
diff --git a/llvm/lib/Target/X86/X86CallingConv.td b/llvm/lib/Target/X86/X86CallingConv.td
index 9e5aaeb44334..32eedcb9ca79 100644
--- a/llvm/lib/Target/X86/X86CallingConv.td
+++ b/llvm/lib/Target/X86/X86CallingConv.td
@@ -1197,8 +1197,8 @@ def CSR_64_AllRegs_AVX512 : CalleeSavedRegs<(sub (add CSR_64_MostRegs, RAX,
(sequence "ZMM%u", 0, 31),
(sequence "K%u", 0, 7)),
(sequence "XMM%u", 0, 15))>;
-def CSR_64_NoneRegs : CalleeSavedRegs<(add RBP, RBX)>;
-def CSR_32_NoneRegs : CalleeSavedRegs<(add EBP, ESI)>;
+def CSR_64_NoneRegs : CalleeSavedRegs<(add RBP)>;
+def CSR_32_NoneRegs : CalleeSavedRegs<(add EBP)>;
// Standard C + YMM6-15
def CSR_Win64_Intel_OCL_BI_AVX : CalleeSavedRegs<(add RBX, RBP, RDI, RSI, R12,
```
https://github.com/llvm/llvm-project/pull/150106
More information about the llvm-commits
mailing list