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

via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 19:19:23 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

<details>
<summary>[code=1] lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetMachine.cpp.obj</summary>

```
FAILED: [code=1] lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetMachine.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\_work\llvm-project\llvm-project\build\lib\Target\AMDGPU -IC:\_work\llvm-project\llvm-project\llvm\lib\Target\AMDGPU -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Folib\Target\AMDGPU\CMakeFiles\LLVMAMDGPUCodeGen.dir\AMDGPUTargetMachine.cpp.obj /Fdlib\Target\AMDGPU\CMakeFiles\LLVMAMDGPUCodeGen.dir\LLVMAMDGPUCodeGen.pdb -c -- C:\_work\llvm-project\llvm-project\llvm\lib\Target\AMDGPU\AMDGPUTargetMachine.cpp
C:\_work\llvm-project\llvm-project\llvm\lib\Target\AMDGPU\AMDGPUTargetMachine.cpp(2345,37): error: use of undeclared identifier 'FuncletLayoutPass'; did you mean 'FuncletLayoutID'?
2345 |   disablePass<StackMapLivenessPass, FuncletLayoutPass, PatchableFunctionPass,
|                                     ^~~~~~~~~~~~~~~~~
|                                     FuncletLayoutID
C:\_work\llvm-project\llvm-project\llvm\include\llvm/CodeGen/Passes.h(415,23): note: 'FuncletLayoutID' declared here
415 | LLVM_ABI extern char &FuncletLayoutID;
|                       ^
C:\_work\llvm-project\llvm-project\llvm\lib\Target\AMDGPU\AMDGPUTargetMachine.cpp(2345,3): error: no matching member function for call to 'disablePass'
2345 |   disablePass<StackMapLivenessPass, FuncletLayoutPass, PatchableFunctionPass,
|   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2346 |               ShadowStackGCLoweringPass, GCLoweringPass>();
|               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Passes/CodeGenPassBuilder.h(376,38): note: candidate template ignored: invalid explicitly-specified argument for template parameter 'PassTs'
376 |   template <typename... PassTs> void disablePass() {
|                                      ^
2 errors generated.
```
</details>
<details>
<summary>[code=1] lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyCodeGenPassBuilder.cpp.obj</summary>

```
FAILED: [code=1] lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyCodeGenPassBuilder.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\_work\llvm-project\llvm-project\build\lib\Target\WebAssembly -IC:\_work\llvm-project\llvm-project\llvm\lib\Target\WebAssembly -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Folib\Target\WebAssembly\CMakeFiles\LLVMWebAssemblyCodeGen.dir\WebAssemblyCodeGenPassBuilder.cpp.obj /Fdlib\Target\WebAssembly\CMakeFiles\LLVMWebAssemblyCodeGen.dir\LLVMWebAssemblyCodeGen.pdb -c -- C:\_work\llvm-project\llvm-project\llvm\lib\Target\WebAssembly\WebAssemblyCodeGenPassBuilder.cpp
C:\_work\llvm-project\llvm-project\llvm\lib\Target\WebAssembly\WebAssemblyCodeGenPassBuilder.cpp(67,17): error: use of undeclared identifier 'FuncletLayoutPass'; did you mean 'FuncletLayoutID'?
67 |                 FuncletLayoutPass, StackMapLivenessPass, PatchableFunctionPass,
|                 ^~~~~~~~~~~~~~~~~
|                 FuncletLayoutID
C:\_work\llvm-project\llvm-project\llvm\include\llvm/CodeGen/Passes.h(415,23): note: 'FuncletLayoutID' declared here
415 | LLVM_ABI extern char &FuncletLayoutID;
|                       ^
C:\_work\llvm-project\llvm-project\llvm\lib\Target\WebAssembly\WebAssemblyCodeGenPassBuilder.cpp(65,5): error: no matching member function for call to 'disablePass'
65 |     disablePass<MachineLateInstrsCleanupPass, MachineCopyPropagationPass,
|     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66 |                 PostRAMachineSinkingPass, PostRASchedulerPass,
|                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67 |                 FuncletLayoutPass, StackMapLivenessPass, PatchableFunctionPass,
|                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 |                 ShrinkWrapPass, RemoveLoadsIntoFakeUsesPass,
|                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 |                 MachineBlockPlacementPass>();
|                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/Passes/CodeGenPassBuilder.h(376,38): note: candidate template ignored: invalid explicitly-specified argument for template parameter 'PassTs'
376 |   template <typename... PassTs> void disablePass() {
|                                      ^
2 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the llvm-commits mailing list