[llvm-branch-commits] [llvm] SafeStack: Use LibcallLoweringInfo analysis pass (PR #176379)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jan 16 05:46:03 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-nvptx
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
---
Patch is 57.25 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/176379.diff
61 Files Affected:
- (modified) llvm/lib/CodeGen/SafeStack.cpp (+44-15)
- (modified) llvm/test/Transforms/SafeStack/AArch64/abi.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/AArch64/abi_ssp.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/AArch64/unreachable.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/ARM/abi.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/ARM/debug.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/ARM/setjmp.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/NVPTX/safestack-libcall-error.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/NVPTX/safestack-pointer-address-libcall-error.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/abi.ll (+4-4)
- (modified) llvm/test/Transforms/SafeStack/X86/abi_ssp.ll (+5-5)
- (modified) llvm/test/Transforms/SafeStack/X86/addr-taken.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace-error.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/alloca-addrspace.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/array-aligned.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/array.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/byval.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/call.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/cast.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/coloring-ssp.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/coloring.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/coloring2.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/constant-gep-call.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/constant-gep.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/constant-geps.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/debug-loc-dynamic.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/debug-loc.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/debug-loc2.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/dynamic-alloca.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-addr-pointer.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-bitcast-store.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-bitcast-store2.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-call.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-casted-pointer.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-gep-call.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-gep-invoke.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-gep-negative.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-gep-ptrtoint.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-gep-store.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-phi-call.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-select-call.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/escape-vector.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/invoke.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/layout-frag.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/layout-region-split.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/memintrinsic-oob-read.ll (+2-2)
- (added) llvm/test/Transforms/SafeStack/X86/missing-analysis.ll (+6)
- (modified) llvm/test/Transforms/SafeStack/X86/musttail.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/no-attr.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/no-crash-on-lifetime.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/phi-cycle.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/phi.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/pr54784.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/ret.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/setjmp.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/setjmp2.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/sink-to-use.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/ssp.ll (+1-1)
- (modified) llvm/test/Transforms/SafeStack/X86/store.ll (+2-2)
- (modified) llvm/test/Transforms/SafeStack/X86/struct.ll (+2-2)
``````````diff
diff --git a/llvm/lib/CodeGen/SafeStack.cpp b/llvm/lib/CodeGen/SafeStack.cpp
index 1c109a1f9fed1..b9bd3d4c123f0 100644
--- a/llvm/lib/CodeGen/SafeStack.cpp
+++ b/llvm/lib/CodeGen/SafeStack.cpp
@@ -106,6 +106,7 @@ namespace {
class SafeStack {
Function &F;
const TargetLoweringBase &TL;
+ const LibcallLoweringInfo &Libcalls;
const DataLayout &DL;
DomTreeUpdater *DTU;
ScalarEvolution &SE;
@@ -183,9 +184,10 @@ class SafeStack {
void TryInlinePointerAddress();
public:
- SafeStack(Function &F, const TargetLoweringBase &TL, const DataLayout &DL,
+ SafeStack(Function &F, const TargetLoweringBase &TL,
+ const LibcallLoweringInfo &Libcalls, const DataLayout &DL,
DomTreeUpdater *DTU, ScalarEvolution &SE)
- : F(F), TL(TL), DL(DL), DTU(DTU), SE(SE),
+ : F(F), TL(TL), Libcalls(Libcalls), DL(DL), DTU(DTU), SE(SE),
StackPtrTy(DL.getAllocaPtrType(F.getContext())),
IntPtrTy(DL.getIntPtrType(F.getContext())),
Int32Ty(Type::getInt32Ty(F.getContext())) {}
@@ -468,14 +470,17 @@ void SafeStack::checkStackGuard(IRBuilder<> &IRB, Function &F, Instruction &RI,
SplitBlockAndInsertIfThen(Cmp, &RI, /* Unreachable */ true, Weights, DTU);
IRBuilder<> IRBFail(CheckTerm);
// FIXME: respect -fsanitize-trap / -ftrap-function here?
- const char *StackChkFailName =
- TL.getLibcallName(RTLIB::STACKPROTECTOR_CHECK_FAIL);
- if (!StackChkFailName) {
+ RTLIB::LibcallImpl StackChkFailImpl =
+ Libcalls.getLibcallImpl(RTLIB::STACKPROTECTOR_CHECK_FAIL);
+ if (StackChkFailImpl == RTLIB::Unsupported) {
F.getContext().emitError(
"no libcall available for stackprotector check fail");
return;
}
+ StringRef StackChkFailName =
+ RTLIB::RuntimeLibcallsInfo::getLibcallImplName(StackChkFailImpl);
+
FunctionCallee StackChkFail =
F.getParent()->getOrInsertFunction(StackChkFailName, IRB.getVoidTy());
IRBFail.CreateCall(StackChkFail, {});
@@ -799,14 +804,18 @@ bool SafeStack::run() {
IRB.SetCurrentDebugLocation(
DILocation::get(SP->getContext(), SP->getScopeLine(), 0, SP));
if (SafeStackUsePointerAddress) {
- const char *SafestackPointerAddressName =
- TL.getLibcallName(RTLIB::SAFESTACK_POINTER_ADDRESS);
- if (!SafestackPointerAddressName) {
+ RTLIB::LibcallImpl SafestackPointerAddressImpl =
+ Libcalls.getLibcallImpl(RTLIB::SAFESTACK_POINTER_ADDRESS);
+ if (SafestackPointerAddressImpl == RTLIB::Unsupported) {
F.getContext().emitError(
"no libcall available for safestack pointer address");
return false;
}
+ StringRef SafestackPointerAddressName =
+ RTLIB::RuntimeLibcallsInfo::getLibcallImplName(
+ SafestackPointerAddressImpl);
+
FunctionCallee Fn = F.getParent()->getOrInsertFunction(
SafestackPointerAddressName, IRB.getPtrTy(0));
UnsafeStackPtr = IRB.CreateCall(Fn);
@@ -876,6 +885,7 @@ class SafeStackLegacyPass : public FunctionPass {
}
void getAnalysisUsage(AnalysisUsage &AU) const override {
+ AU.addRequired<LibcallLoweringInfoWrapper>();
AU.addRequired<TargetPassConfig>();
AU.addRequired<TargetLibraryInfoWrapperPass>();
AU.addRequired<AssumptionCacheTracker>();
@@ -898,10 +908,15 @@ class SafeStackLegacyPass : public FunctionPass {
}
TM = &getAnalysis<TargetPassConfig>().getTM<TargetMachine>();
- auto *TL = TM->getSubtargetImpl(F)->getTargetLowering();
+ const TargetSubtargetInfo *Subtarget = TM->getSubtargetImpl(F);
+ auto *TL = Subtarget->getTargetLowering();
if (!TL)
report_fatal_error("TargetLowering instance is required");
+ const LibcallLoweringInfo &Libcalls =
+ getAnalysis<LibcallLoweringInfoWrapper>().getLibcallLowering(
+ *F.getParent(), *Subtarget);
+
auto *DL = &F.getDataLayout();
auto &TLI = getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
auto &ACT = getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
@@ -934,8 +949,8 @@ class SafeStackLegacyPass : public FunctionPass {
ScalarEvolution SE(F, TLI, ACT, *DT, LI);
- return SafeStack(F, *TL, *DL, ShouldPreserveDominatorTree ? &DTU : nullptr,
- SE)
+ return SafeStack(F, *TL, Libcalls, *DL,
+ ShouldPreserveDominatorTree ? &DTU : nullptr, SE)
.run();
}
};
@@ -958,18 +973,31 @@ PreservedAnalyses SafeStackPass::run(Function &F,
return PreservedAnalyses::all();
}
- auto *TL = TM->getSubtargetImpl(F)->getTargetLowering();
- if (!TL)
- report_fatal_error("TargetLowering instance is required");
+ const TargetSubtargetInfo *Subtarget = TM->getSubtargetImpl(F);
+ auto *TL = Subtarget->getTargetLowering();
auto &DL = F.getDataLayout();
// preserve DominatorTree
auto &DT = FAM.getResult<DominatorTreeAnalysis>(F);
auto &SE = FAM.getResult<ScalarEvolutionAnalysis>(F);
+
+ auto &MAMProxy = FAM.getResult<ModuleAnalysisManagerFunctionProxy>(F);
+ const LibcallLoweringModuleAnalysisResult *LibcallLowering =
+ MAMProxy.getCachedResult<LibcallLoweringModuleAnalysis>(*F.getParent());
+
+ if (!LibcallLowering) {
+ F.getContext().emitError("'" + LibcallLoweringModuleAnalysis::name() +
+ "' analysis required");
+ return PreservedAnalyses::all();
+ }
+
+ const LibcallLoweringInfo &Libcalls =
+ LibcallLowering->getLibcallLowering(*Subtarget);
+
DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy);
- bool Changed = SafeStack(F, *TL, DL, &DTU, SE).run();
+ bool Changed = SafeStack(F, *TL, Libcalls, DL, &DTU, SE).run();
if (!Changed)
return PreservedAnalyses::all();
@@ -982,6 +1010,7 @@ char SafeStackLegacyPass::ID = 0;
INITIALIZE_PASS_BEGIN(SafeStackLegacyPass, DEBUG_TYPE,
"Safe Stack instrumentation pass", false, false)
+INITIALIZE_PASS_DEPENDENCY(LibcallLoweringInfoWrapper)
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
INITIALIZE_PASS_END(SafeStackLegacyPass, DEBUG_TYPE,
diff --git a/llvm/test/Transforms/SafeStack/AArch64/abi.ll b/llvm/test/Transforms/SafeStack/AArch64/abi.ll
index 70e1ba605c1d6..329e5cd397d4a 100644
--- a/llvm/test/Transforms/SafeStack/AArch64/abi.ll
+++ b/llvm/test/Transforms/SafeStack/AArch64/abi.ll
@@ -1,5 +1,5 @@
; RUN: opt -safe-stack -S -mtriple=aarch64-linux-android < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=aarch64-linux-android < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=aarch64-linux-android < %s -o - | FileCheck %s
define void @foo() nounwind uwtable safestack {
diff --git a/llvm/test/Transforms/SafeStack/AArch64/abi_ssp.ll b/llvm/test/Transforms/SafeStack/AArch64/abi_ssp.ll
index d981626894ec3..6a7122457b0d9 100644
--- a/llvm/test/Transforms/SafeStack/AArch64/abi_ssp.ll
+++ b/llvm/test/Transforms/SafeStack/AArch64/abi_ssp.ll
@@ -1,5 +1,5 @@
; RUN: opt -safe-stack -S -mtriple=aarch64-linux-android < %s -o - | FileCheck --check-prefixes=TLS,ANDROID %s
-; RUN: opt -passes=safe-stack -S -mtriple=aarch64-linux-android < %s -o - | FileCheck --check-prefixes=TLS,ANDROID %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=aarch64-linux-android < %s -o - | FileCheck --check-prefixes=TLS,ANDROID %s
define void @foo() nounwind uwtable safestack sspreq {
entry:
diff --git a/llvm/test/Transforms/SafeStack/AArch64/unreachable.ll b/llvm/test/Transforms/SafeStack/AArch64/unreachable.ll
index befdc634b73e5..8c92ea63037ba 100644
--- a/llvm/test/Transforms/SafeStack/AArch64/unreachable.ll
+++ b/llvm/test/Transforms/SafeStack/AArch64/unreachable.ll
@@ -1,5 +1,5 @@
; RUN: opt -safe-stack -safe-stack-coloring -S -mtriple=aarch64-linux-android < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -safe-stack-coloring -S -mtriple=aarch64-linux-android < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -safe-stack-coloring -S -mtriple=aarch64-linux-android < %s -o - | FileCheck %s
define void @foo() nounwind uwtable safestack {
entry:
diff --git a/llvm/test/Transforms/SafeStack/ARM/abi.ll b/llvm/test/Transforms/SafeStack/ARM/abi.ll
index 5584dedf697ef..2d1d2e84f7ff7 100644
--- a/llvm/test/Transforms/SafeStack/ARM/abi.ll
+++ b/llvm/test/Transforms/SafeStack/ARM/abi.ll
@@ -1,5 +1,5 @@
; RUN: opt -safe-stack -S -mtriple=arm-linux-android < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=arm-linux-android < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=arm-linux-android < %s -o - | FileCheck %s
define void @foo() nounwind uwtable safestack {
diff --git a/llvm/test/Transforms/SafeStack/ARM/debug.ll b/llvm/test/Transforms/SafeStack/ARM/debug.ll
index dfce13a81a2a9..89c70b7ffd2a7 100644
--- a/llvm/test/Transforms/SafeStack/ARM/debug.ll
+++ b/llvm/test/Transforms/SafeStack/ARM/debug.ll
@@ -1,5 +1,5 @@
; RUN: opt -safe-stack -safestack-use-pointer-address < %s -S | FileCheck %s
-; RUN: opt -passes=safe-stack -safestack-use-pointer-address < %s -S | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -safestack-use-pointer-address < %s -S | FileCheck %s
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "armv7-pc-linux-android"
diff --git a/llvm/test/Transforms/SafeStack/ARM/setjmp.ll b/llvm/test/Transforms/SafeStack/ARM/setjmp.ll
index 8da5f3549a4cf..beb5a41e6c1de 100644
--- a/llvm/test/Transforms/SafeStack/ARM/setjmp.ll
+++ b/llvm/test/Transforms/SafeStack/ARM/setjmp.ll
@@ -1,6 +1,6 @@
; Test stack pointer restore after setjmp() with the function-call safestack ABI.
; RUN: opt -safe-stack -S -mtriple=arm-linux-androideabi < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=arm-linux-androideabi < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=arm-linux-androideabi < %s -o - | FileCheck %s
@env = global [64 x i32] zeroinitializer, align 4
diff --git a/llvm/test/Transforms/SafeStack/NVPTX/safestack-libcall-error.ll b/llvm/test/Transforms/SafeStack/NVPTX/safestack-libcall-error.ll
index a17a9dd867e3a..aa9e40eff56ce 100644
--- a/llvm/test/Transforms/SafeStack/NVPTX/safestack-libcall-error.ll
+++ b/llvm/test/Transforms/SafeStack/NVPTX/safestack-libcall-error.ll
@@ -1,4 +1,4 @@
-; RUN: not opt -disable-output -mtriple=nvptx64-- -mcpu=sm_90 -passes=safe-stack %s 2>&1 | FileCheck %s
+; RUN: not opt -disable-output -mtriple=nvptx64-- -mcpu=sm_90 -passes='require<libcall-lowering-info>,safe-stack' %s 2>&1 | FileCheck %s
; CHECK: error: no libcall available for stackprotector check fail
define void @foo(i32 %t) #0 {
diff --git a/llvm/test/Transforms/SafeStack/NVPTX/safestack-pointer-address-libcall-error.ll b/llvm/test/Transforms/SafeStack/NVPTX/safestack-pointer-address-libcall-error.ll
index f41dcff76b248..3d9b9d9347a7d 100644
--- a/llvm/test/Transforms/SafeStack/NVPTX/safestack-pointer-address-libcall-error.ll
+++ b/llvm/test/Transforms/SafeStack/NVPTX/safestack-pointer-address-libcall-error.ll
@@ -1,4 +1,4 @@
-; RUN: not opt -disable-output -mtriple=nvptx64-- -safestack-use-pointer-address -mcpu=sm_90 -passes=safe-stack %s 2>&1 | FileCheck -check-prefix=ERR %s
+; RUN: not opt -disable-output -mtriple=nvptx64-- -safestack-use-pointer-address -mcpu=sm_90 -passes='require<libcall-lowering-info>,safe-stack' %s 2>&1 | FileCheck -check-prefix=ERR %s
; ERR: error: no libcall available for safestack pointer address
define void @foo(i32 %t) #0 {
diff --git a/llvm/test/Transforms/SafeStack/X86/abi.ll b/llvm/test/Transforms/SafeStack/X86/abi.ll
index 2afee3b2f342a..02d4afcd7252e 100644
--- a/llvm/test/Transforms/SafeStack/X86/abi.ll
+++ b/llvm/test/Transforms/SafeStack/X86/abi.ll
@@ -2,10 +2,10 @@
; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
; RUN: opt -safe-stack -S -mtriple=i686-linux-android < %s -o - | FileCheck %s --check-prefix=DIRECT-TLS32
; RUN: opt -safe-stack -S -mtriple=x86_64-linux-android < %s -o - | FileCheck %s --check-prefix=DIRECT-TLS64
-; RUN: opt -passes=safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
-; RUN: opt -passes=safe-stack -S -mtriple=i686-linux-android < %s -o - | FileCheck %s --check-prefix=DIRECT-TLS32
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-linux-android < %s -o - | FileCheck %s --check-prefix=DIRECT-TLS64
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i686-linux-android < %s -o - | FileCheck %s --check-prefix=DIRECT-TLS32
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-linux-android < %s -o - | FileCheck %s --check-prefix=DIRECT-TLS64
define void @foo() nounwind uwtable safestack {
diff --git a/llvm/test/Transforms/SafeStack/X86/abi_ssp.ll b/llvm/test/Transforms/SafeStack/X86/abi_ssp.ll
index 3b6fb3aa0bfdb..1b00be27b8362 100644
--- a/llvm/test/Transforms/SafeStack/X86/abi_ssp.ll
+++ b/llvm/test/Transforms/SafeStack/X86/abi_ssp.ll
@@ -6,13 +6,13 @@
; RUN: opt -safe-stack -S -mtriple=x86_64-unknown-fuchsia < %s -o - | FileCheck --check-prefixes=COMMON,FUCHSIA64 %s
-; RUN: opt -passes=safe-stack -S -mtriple=i686-pc-linux-gnu < %s -o - | FileCheck --check-prefixes=COMMON,TLS32 %s
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck --check-prefixes=COMMON,TLS64 %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i686-pc-linux-gnu < %s -o - | FileCheck --check-prefixes=COMMON,TLS32 %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck --check-prefixes=COMMON,TLS64 %s
-; RUN: opt -passes=safe-stack -S -mtriple=i686-linux-android < %s -o - | FileCheck --check-prefixes=COMMON,TLS32 %s
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-linux-android < %s -o - | FileCheck --check-prefixes=COMMON,TLS64 %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i686-linux-android < %s -o - | FileCheck --check-prefixes=COMMON,TLS32 %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-linux-android < %s -o - | FileCheck --check-prefixes=COMMON,TLS64 %s
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-unknown-fuchsia < %s -o - | FileCheck --check-prefixes=COMMON,FUCHSIA64 %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-unknown-fuchsia < %s -o - | FileCheck --check-prefixes=COMMON,FUCHSIA64 %s
define void @foo() safestack sspreq {
diff --git a/llvm/test/Transforms/SafeStack/X86/addr-taken.ll b/llvm/test/Transforms/SafeStack/X86/addr-taken.ll
index 7bbe9f4743d1e..fdccd995376fd 100644
--- a/llvm/test/Transforms/SafeStack/X86/addr-taken.ll
+++ b/llvm/test/Transforms/SafeStack/X86/addr-taken.ll
@@ -1,7 +1,7 @@
; RUN: opt -safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
@.str = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1
diff --git a/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace-error.ll b/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace-error.ll
index 2a9b242d04aad..106a6d90957d1 100644
--- a/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace-error.ll
+++ b/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace-error.ll
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
-; RUN: not --crash opt -passes=safe-stack -mtriple=x86_64-pc-linux-gnu -disable-output %s 2>&1 | FileCheck %s
+; RUN: not --crash opt -passes='require<libcall-lowering-info>,safe-stack' -mtriple=x86_64-pc-linux-gnu -disable-output %s 2>&1 | FileCheck %s
target datalayout = "A5"
diff --git a/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace.ll b/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace.ll
index 4f780fa9695ff..e19e01ad24543 100644
--- a/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace.ll
+++ b/llvm/test/Transforms/SafeStack/X86/alloca-addrspace-wrong-addrspace.ll
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
-; RUN: opt -S -passes=safe-stack -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
+; RUN: opt -S -passes='require<libcall-lowering-info>,safe-stack' -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
target datalayout = "A5"
diff --git a/llvm/test/Transforms/SafeStack/X86/alloca-addrspace.ll b/llvm/test/Transforms/SafeStack/X86/alloca-addrspace.ll
index efd6c64246102..c20243d95e356 100644
--- a/llvm/test/Transforms/SafeStack/X86/alloca-addrspace.ll
+++ b/llvm/test/Transforms/SafeStack/X86/alloca-addrspace.ll
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
-; RUN: opt -S -passes=safe-stack -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
+; RUN: opt -S -passes='require<libcall-lowering-info>,safe-stack' -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s --check-prefix=TLS
target datalayout = "A5"
diff --git a/llvm/test/Transforms/SafeStack/X86/array-aligned.ll b/llvm/test/Transforms/SafeStack/X86/array-aligned.ll
index 509e50072b994..93168c2706d03 100644
--- a/llvm/test/Transforms/SafeStack/X86/array-aligned.ll
+++ b/llvm/test/Transforms/SafeStack/X86/array-aligned.ll
@@ -1,7 +1,7 @@
; RUN: opt -safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
@.str = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1
diff --git a/llvm/test/Transforms/SafeStack/X86/array.ll b/llvm/test/Transforms/SafeStack/X86/array.ll
index e773e375529db..04dd9ace24006 100644
--- a/llvm/test/Transforms/SafeStack/X86/array.ll
+++ b/llvm/test/Transforms/SafeStack/X86/array.ll
@@ -1,7 +1,7 @@
; RUN: opt -safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
+; RUN: opt -passes='require<libcall-lowering-info>,safe-stack' -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
; array [4 x i8]
; Requires protector.
diff --git a/llvm/test/Transforms/SafeStack/X86/byval.ll b/llvm/test/Transforms/SafeStack/X86/byval.ll
index 29c6e22b7a278..279df22b9d5a3 100644
--- a/llvm/test/Transforms/SafeStack/X86/byval.ll
+++ b/llvm/test/Transforms/SafeStack/X86/byval.ll
@@ -1,7 +1,7 @@
; RUN: opt -safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
-; RUN: opt -passes=safe-stack -S -mtri...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/176379
More information about the llvm-branch-commits
mailing list