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 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
