[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