[llvm] [AMDGPU] Add an option to completely disable kernel argument preload (PR #153975)
Mikael Holmén via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 18 22:07:45 PDT 2025
mikaelholmen wrote:
Hi @shiltian
If built with EXPENSIVE_CHECKS, then running the new testcase fails like this:
```
LLVM ERROR: Module changed by AMDGPUPreloadKernelArgumentsPass without invalidating analyses
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /repo/llvm/build-all-expensive/bin/opt -S -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -passes=amdgpu-preload-kernel-arguments /repo/llvm/test/CodeGen/AMDGPU/disable-preload-kernargs.ll -o -
1. Running pass "amdgpu-preload-kernel-arguments" on module "/repo/llvm/test/CodeGen/AMDGPU/disable-preload-kernargs.ll"
#0 0x000056368faf3636 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/repo/llvm/build-all-expensive/bin/opt+0x4dab636)
#1 0x000056368faf0bc5 llvm::sys::RunSignalHandlers() (/repo/llvm/build-all-expensive/bin/opt+0x4da8bc5)
#2 0x000056368faf4809 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007fbfbdae3990 __restore_rt (/lib64/libpthread.so.0+0x12990)
#4 0x00007fbfbcb8b52f raise (/lib64/libc.so.6+0x4e52f)
#5 0x00007fbfbcb5ee65 abort (/lib64/libc.so.6+0x21e65)
#6 0x000056368fab9254 llvm::report_fatal_error(llvm::Twine const&, bool) (/repo/llvm/build-all-expensive/bin/opt+0x4d71254)
#7 0x000056369120b478 void llvm::detail::UniqueFunctionBase<void, llvm::StringRef, llvm::Any, llvm::PreservedAnalyses const&>::CallImpl<llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(llvm::PassInstrumentationCallbacks&, llvm::AnalysisManager<llvm::Module>&)::$_2>(void*, llvm::StringRef, llvm::Any&, llvm::PreservedAnalyses const&) StandardInstrumentations.cpp:0:0
#8 0x000056368fd43cae llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/repo/llvm/build-all-expensive/bin/opt+0x4ffbcae)
#9 0x00005636911d96e7 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool, bool) (/repo/llvm/build-all-expensive/bin/opt+0x64916e7)
#10 0x000056368fa8dc9f optMain (/repo/llvm/build-all-expensive/bin/opt+0x4d45c9f)
#11 0x00007fbfbcb777e5 __libc_start_main (/lib64/libc.so.6+0x3a7e5)
#12 0x000056368fa8b2ee _start (/repo/llvm/build-all-expensive/bin/opt+0x4d432ee)
FileCheck error: '<stdin>' is empty.
FileCheck command line: /repo/llvm/build-all-expensive/bin/FileCheck -check-prefix=DEFAULT-PRELOAD /repo/llvm/test/CodeGen/AMDGPU/disable-preload-kernargs.ll
```
https://github.com/llvm/llvm-project/pull/153975
More information about the llvm-commits
mailing list