[llvm] [BOLT] Extend Inliner to work on functions with Pointer Authentication (PR #162458)

Peter Waller via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 24 02:05:44 PST 2025


================
@@ -338,6 +345,18 @@ Inliner::inlineCall(BinaryBasicBlock &CallerBB,
                                 BC.Ctx.get());
       }
 
+      // Handling fused authentication and return instructions (Armv8.3-A):
+      // if the Callee does not end in a tailcall, the return will be removed
+      // from the inlined block. If that return is RETA(A|B), we have to keep
+      // the authentication part.
+      // RETAA -> AUTIASP + RET
+      // RETAB -> AUTIBSP + RET
----------------
peterwaller-arm wrote:

Comment might be clearer dropping `+ RET`, since you are transforming the RET into an AUTI.

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


More information about the llvm-commits mailing list