[llvm] [CodeGen] Replace CodeGenPassBuilder CRTP with virtual hooks (PR #216468)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 20:48:57 PDT 2026


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `polly-x86_64-linux-shared` running on `polly-x86_64-gce2` while building `llvm` at step 3 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/97/builds/15847

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 3 (annotate) failure: 'python ../llvm.src/polly/ci/polly-x86_64-linux-shared.py ...' (failure)
...
[ 75%/158.854s :: 744->2->2325 (of 3070)] Creating library symlink lib/libLLVMipo.so
[ 75%/158.868s :: 743->2->2326 (of 3070)] Linking CXX shared library lib/libLLVMWindowsDriver.so.24.0git
[ 75%/158.881s :: 742->2->2327 (of 3070)] Creating library symlink lib/libLLVMWindowsDriver.so
[ 75%/158.894s :: 741->2->2328 (of 3070)] Building CXX object lib/WindowsManifest/CMakeFiles/LLVMWindowsManifest.dir/WindowsManifestMerger.cpp.o
[ 75%/158.922s :: 740->2->2329 (of 3070)] Linking CXX shared library lib/libLLVMCoroutines.so.24.0git
[ 75%/158.937s :: 739->2->2330 (of 3070)] Creating library symlink lib/libLLVMCoroutines.so
[ 75%/158.948s :: 738->2->2331 (of 3070)] Linking CXX shared library lib/libLLVMWindowsManifest.so.24.0git
[ 75%/158.962s :: 737->2->2332 (of 3070)] Creating library symlink lib/libLLVMWindowsManifest.so
[ 75%/158.975s :: 736->2->2333 (of 3070)] Building CXX object utils/FileCheck/CMakeFiles/FileCheck.dir/FileCheck.cpp.o
[ 76%/159.026s :: 735->2->2334 (of 3070)] Linking CXX shared library lib/libLLVMPasses.so.24.0git
FAILED: lib/libLLVMPasses.so.24.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-dangling-reference -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=lld -Wl,-z,pack-relative-relocs -Wl,--color-diagnostics   -Wl,--gc-sections -shared -Wl,-soname,libLLVMPasses.so.24.0git -o lib/libLLVMPasses.so.24.0git lib/Passes/CMakeFiles/LLVMPasses.dir/CodeGenPassBuilder.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilderBindings.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilderPipelines.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/StandardInstrumentations.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:\$ORIGIN/../lib/x86_64-unknown-linux-gnu:/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/build/llvm.build/lib:"  lib/libLLVMCFGuard.so.24.0git  lib/libLLVMGlobalISel.so.24.0git  lib/libLLVMCoroutines.so.24.0git  lib/libLLVMHipStdPar.so.24.0git  lib/libLLVMipo.so.24.0git  lib/libLLVMIRPrinter.so.24.0git  lib/libLLVMVectorize.so.24.0git  lib/libLLVMInstrumentation.so.24.0git  lib/libLLVMCodeGen.so.24.0git  lib/libLLVMObjCARCOpts.so.24.0git  lib/libLLVMTarget.so.24.0git  lib/libLLVMScalarOpts.so.24.0git  lib/libLLVMAggressiveInstCombine.so.24.0git  lib/libLLVMInstCombine.so.24.0git  lib/libLLVMTransformUtils.so.24.0git  lib/libLLVMAnalysis.so.24.0git  lib/libLLVMCore.so.24.0git  lib/libLLVMSupport.so.24.0git  -Wl,-rpath-link,/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/build/llvm.build/lib && :
ld.lld: error: undefined symbol: llvm::AsmPrinterAnalysis::Key
>>> referenced by CodeGenPassBuilder.cpp
>>>               lib/Passes/CMakeFiles/LLVMPasses.dir/CodeGenPassBuilder.cpp.o:(llvm::CodeGenPassBuilder::buildPipeline(llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::AnalysisManager<llvm::Module>&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, llvm::MCContext&))
>>> referenced by CodeGenPassBuilder.cpp
>>>               lib/Passes/CMakeFiles/LLVMPasses.dir/CodeGenPassBuilder.cpp.o:(llvm::CodeGenPassBuilder::buildPipeline(llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::AnalysisManager<llvm::Module>&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, llvm::MCContext&))
collect2: error: ld returned 1 exit status
[ 76%/159.027s :: 735->1->2335 (of 3070)] Linking CXX executable bin/FileCheck
ninja: build stopped: subcommand failed.
Running: ccache -sv
Cache directory:              /home/worker/.cache/ccache
Config file:                  /home/worker/.config/ccache/ccache.conf
System config file:           /etc/ccache.conf
Stats updated:                Thu Aug 20 03:46:47 2026
Cacheable calls:               2069 / 2070 (99.95%)
  Hits:                        2061 / 2069 (99.61%)
    Direct:                    2061 / 2061 (100.0%)
    Preprocessed:                 0 / 2061 ( 0.00%)
  Misses:                         8 / 2069 ( 0.39%)
Uncacheable calls:                1 / 2070 ( 0.05%)
  Unsupported code directive:     1 /    1 (100.0%)
Successful lookups:
  Direct:                      2061 / 2070 (99.57%)
  Preprocessed:                   0 /    8 ( 0.00%)
Local storage:
  Cache size (GiB):             5.0 /  5.0 (99.93%)
  Files:                      84636
  Cleanups:                       1
  Hits:                        2061 / 2069 (99.61%)
  Misses:                         8 / 2069 ( 0.39%)
  Reads:                       4139
  Writes:                        16
ninja -C llvm.build exited with return code 1.
@@@STEP_FAILURE@@@
Traceback (most recent call last):
  File "/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/build/../llvm.src/polly/ci/polly-x86_64-linux-shared.py", line 46, in <module>
    w.run_ninja(builddir=llvmbuilddir, ccache_stats=True)
  File "/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/llvm.src/.ci/buildbot/worker.py", line 269, in run_ninja
Step 7 (build-llvm) failure: build-llvm (failure)
...
[ 75%/158.854s :: 744->2->2325 (of 3070)] Creating library symlink lib/libLLVMipo.so
[ 75%/158.868s :: 743->2->2326 (of 3070)] Linking CXX shared library lib/libLLVMWindowsDriver.so.24.0git
[ 75%/158.881s :: 742->2->2327 (of 3070)] Creating library symlink lib/libLLVMWindowsDriver.so
[ 75%/158.894s :: 741->2->2328 (of 3070)] Building CXX object lib/WindowsManifest/CMakeFiles/LLVMWindowsManifest.dir/WindowsManifestMerger.cpp.o
[ 75%/158.922s :: 740->2->2329 (of 3070)] Linking CXX shared library lib/libLLVMCoroutines.so.24.0git
[ 75%/158.937s :: 739->2->2330 (of 3070)] Creating library symlink lib/libLLVMCoroutines.so
[ 75%/158.948s :: 738->2->2331 (of 3070)] Linking CXX shared library lib/libLLVMWindowsManifest.so.24.0git
[ 75%/158.962s :: 737->2->2332 (of 3070)] Creating library symlink lib/libLLVMWindowsManifest.so
[ 75%/158.975s :: 736->2->2333 (of 3070)] Building CXX object utils/FileCheck/CMakeFiles/FileCheck.dir/FileCheck.cpp.o
[ 76%/159.026s :: 735->2->2334 (of 3070)] Linking CXX shared library lib/libLLVMPasses.so.24.0git
FAILED: lib/libLLVMPasses.so.24.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-dangling-reference -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=lld -Wl,-z,pack-relative-relocs -Wl,--color-diagnostics   -Wl,--gc-sections -shared -Wl,-soname,libLLVMPasses.so.24.0git -o lib/libLLVMPasses.so.24.0git lib/Passes/CMakeFiles/LLVMPasses.dir/CodeGenPassBuilder.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilderBindings.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilderPipelines.cpp.o lib/Passes/CMakeFiles/LLVMPasses.dir/StandardInstrumentations.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:\$ORIGIN/../lib/x86_64-unknown-linux-gnu:/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/build/llvm.build/lib:"  lib/libLLVMCFGuard.so.24.0git  lib/libLLVMGlobalISel.so.24.0git  lib/libLLVMCoroutines.so.24.0git  lib/libLLVMHipStdPar.so.24.0git  lib/libLLVMipo.so.24.0git  lib/libLLVMIRPrinter.so.24.0git  lib/libLLVMVectorize.so.24.0git  lib/libLLVMInstrumentation.so.24.0git  lib/libLLVMCodeGen.so.24.0git  lib/libLLVMObjCARCOpts.so.24.0git  lib/libLLVMTarget.so.24.0git  lib/libLLVMScalarOpts.so.24.0git  lib/libLLVMAggressiveInstCombine.so.24.0git  lib/libLLVMInstCombine.so.24.0git  lib/libLLVMTransformUtils.so.24.0git  lib/libLLVMAnalysis.so.24.0git  lib/libLLVMCore.so.24.0git  lib/libLLVMSupport.so.24.0git  -Wl,-rpath-link,/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/build/llvm.build/lib && :
ld.lld: error: undefined symbol: llvm::AsmPrinterAnalysis::Key
>>> referenced by CodeGenPassBuilder.cpp
>>>               lib/Passes/CMakeFiles/LLVMPasses.dir/CodeGenPassBuilder.cpp.o:(llvm::CodeGenPassBuilder::buildPipeline(llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::AnalysisManager<llvm::Module>&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, llvm::MCContext&))
>>> referenced by CodeGenPassBuilder.cpp
>>>               lib/Passes/CMakeFiles/LLVMPasses.dir/CodeGenPassBuilder.cpp.o:(llvm::CodeGenPassBuilder::buildPipeline(llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::AnalysisManager<llvm::Module>&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, llvm::MCContext&))
collect2: error: ld returned 1 exit status
[ 76%/159.027s :: 735->1->2335 (of 3070)] Linking CXX executable bin/FileCheck
ninja: build stopped: subcommand failed.
Running: ccache -sv
Cache directory:              /home/worker/.cache/ccache
Config file:                  /home/worker/.config/ccache/ccache.conf
System config file:           /etc/ccache.conf
Stats updated:                Thu Aug 20 03:46:47 2026
Cacheable calls:               2069 / 2070 (99.95%)
  Hits:                        2061 / 2069 (99.61%)
    Direct:                    2061 / 2061 (100.0%)
    Preprocessed:                 0 / 2061 ( 0.00%)
  Misses:                         8 / 2069 ( 0.39%)
Uncacheable calls:                1 / 2070 ( 0.05%)
  Unsupported code directive:     1 /    1 (100.0%)
Successful lookups:
  Direct:                      2061 / 2070 (99.57%)
  Preprocessed:                   0 /    8 ( 0.00%)
Local storage:
  Cache size (GiB):             5.0 /  5.0 (99.93%)
  Files:                      84636
  Cleanups:                       1
  Hits:                        2061 / 2069 (99.61%)
  Misses:                         8 / 2069 ( 0.39%)
  Reads:                       4139
  Writes:                        16
ninja -C llvm.build exited with return code 1.
Traceback (most recent call last):
  File "/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/build/../llvm.src/polly/ci/polly-x86_64-linux-shared.py", line 46, in <module>
    w.run_ninja(builddir=llvmbuilddir, ccache_stats=True)
  File "/home/worker/workers/polly-x86_64-gce2/polly-x86_64-linux-shared/llvm.src/.ci/buildbot/worker.py", line 269, in run_ninja
    run_command(cmd, **kwargs)

```

</details>

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


More information about the llvm-commits mailing list