[llvm] 5e860ee - [AArch64] Set NoPHIs for outlined functions (#209852)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 22 08:57:57 PDT 2026


Author: Ellis Hoag
Date: 2026-07-22T08:57:52-07:00
New Revision: 5e860ee7025db82c1921c9e149cc8a6a68cb9909

URL: https://github.com/llvm/llvm-project/commit/5e860ee7025db82c1921c9e149cc8a6a68cb9909
DIFF: https://github.com/llvm/llvm-project/commit/5e860ee7025db82c1921c9e149cc8a6a68cb9909.diff

LOG: [AArch64] Set NoPHIs for outlined functions (#209852)

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
    llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp b/llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
index 23fef847a75f1..a7e421712096b 100644
--- a/llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
+++ b/llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
@@ -188,7 +188,11 @@ static MachineFunction &createFrameHelperMachineFunction(Module *M,
 
   MachineFunction &MF = MMI->getOrCreateMachineFunction(*F);
   // Remove unnecessary register liveness and set NoVRegs.
-  MF.getProperties().resetTracksLiveness().resetIsSSA().setNoVRegs();
+  MF.getProperties()
+      .resetTracksLiveness()
+      .resetIsSSA()
+      .setNoVRegs()
+      .setNoPHIs();
   MF.getRegInfo().freezeReservedRegs();
 
   // Create entry block.

diff  --git a/llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog.ll b/llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog.ll
index c2541a6d819b8..e1650666e7c5c 100644
--- a/llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog.ll
@@ -1,5 +1,7 @@
-; RUN: llc < %s -mtriple=arm64-apple-ios7.0 -homogeneous-prolog-epilog| FileCheck %s
-; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu  -homogeneous-prolog-epilog | FileCheck %s --check-prefixes=CHECK-LINUX
+; RUN: llc < %s -mtriple=arm64-apple-ios7.0 -homogeneous-prolog-epilog | FileCheck %s
+; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu -homogeneous-prolog-epilog | FileCheck %s --check-prefix=CHECK-LINUX
+
+; RUN: llc < %s -mtriple=arm64-apple-ios7.0 -homogeneous-prolog-epilog -stop-after=aarch64-lower-homogeneous-prolog-epilog | FileCheck %s --check-prefix=MIR
 
 ; CHECK-LABEL: __Z3hooii:
 ; CHECK:      stp     x29, x30, [sp, #-16]!
@@ -77,3 +79,14 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture)
 define void @swift_async(ptr swiftasync %ctx) minsize "frame-pointer"="all" {
   ret void
 }
+
+; MIR-LABEL: name: OUTLINED_FUNCTION_PROLOG_x30x29x19x20x21x22
+; MIR-DAG:   tracksRegLiveness: false
+; MIR-DAG:   isSSA: false
+; MIR-DAG:   noVRegs: true
+; MIR-DAG:   noPhis: true
+; MIR-LABEL: name: OUTLINED_FUNCTION_EPILOG_x30x29x19x20x21x22
+; MIR-DAG:   tracksRegLiveness: false
+; MIR-DAG:   isSSA: false
+; MIR-DAG:   noVRegs: true
+; MIR-DAG:   noPhis: true


        


More information about the llvm-commits mailing list