[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