[llvm] [AMDGPU] Add an option to completely disable kernel argument preload (PR #153975)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 20 15:46:46 PDT 2025


mshockwave 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
> ```

It was not directly caused by the changes made in this patch, but rather the test case itself triggers the error that was not previously caught. I sent a fix: #154645 

https://github.com/llvm/llvm-project/pull/153975


More information about the llvm-commits mailing list