[llvm] [BOLT][AArch64] Add minimal support for liveness analysis. (PR #183298)

Paschalis Mpeis via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 9 09:53:57 PDT 2026


================
@@ -1238,6 +1239,19 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
     return true;
   }
 
+  BitVector getRegsUsedAsParams() const override {
+    BitVector Regs = BitVector(RegInfo->getNumRegs(), false);
+    Regs |= getAliases(AArch64::X0);
+    Regs |= getAliases(AArch64::X1);
+    Regs |= getAliases(AArch64::X2);
+    Regs |= getAliases(AArch64::X3);
+    Regs |= getAliases(AArch64::X4);
+    Regs |= getAliases(AArch64::X5);
+    Regs |= getAliases(AArch64::X6);
+    Regs |= getAliases(AArch64::X7);
+    return Regs;
+  }
+
   void getCalleeSavedRegs(BitVector &Regs) const override {
     Regs |= getAliases(AArch64::X18);
----------------
paschalis-mpeis wrote:

Unrelated to this patch but `x18` is platform dependent.

IIRC, on Android x18 is reserved as the thread register and LLVM excludes r9/x18 from regalloc. 
For liveness, we might already be conservative in this case, but we should double check and handle it properly.

https://github.com/llvm/llvm-project/pull/183298


More information about the llvm-commits mailing list