[llvm] [InstCombine] Preserve profile after folding select instructions with conditionals (PR #159666)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 3 10:24:54 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `lldb-remote-linux-ubuntu` running on `as-builder-9` while building `llvm` at step 7 "build-default".

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

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

```
Step 7 (build-default) failure: cmake (failure)
...
27.938 [188/9/5401] Linking CXX shared module lib/SampleAnalyzerPlugin.so
27.961 [187/9/5402] Linking CXX executable bin/clang-diff
28.207 [186/9/5403] Linking CXX executable bin/clang-installapi
28.243 [185/9/5404] Linking CXX executable bin/clang-refactor
28.334 [184/9/5405] Linking CXX executable bin/clang-offload-packager
28.621 [183/9/5406] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
30.143 [183/8/5407] Linking CXX executable bin/clang-sycl-linker
30.255 [182/8/5408] Linking CXX static library lib/libLLVMLTO.a
30.561 [181/8/5409] Linking CXX executable bin/dsymutil
30.876 [180/8/5410] Linking CXX executable bin/bugpoint
FAILED: bin/bugpoint 
: && /usr/bin/c++ -D__OPTIMIZE__ -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-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,--export-dynamic  -Wl,-rpath-link,/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./lib   -Wl,--dependency-file=tools/bugpoint/CMakeFiles/bugpoint.dir/link.d tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o -o bin/bugpoint  -Wl,-rpath,"\$ORIGIN/../lib:"  lib/libLLVMAArch64AsmParser.a  lib/libLLVMAArch64CodeGen.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Info.a  lib/libLLVMAnalysis.a  lib/libLLVMBitWriter.a  lib/libLLVMCodeGen.a  lib/libLLVMExtensions.a  lib/libLLVMCore.a  lib/libLLVMipo.a  lib/libLLVMIRReader.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMInstrumentation.a  lib/libLLVMLinker.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMScalarOpts.a  lib/libLLVMSupport.a  lib/libLLVMTarget.a  lib/libLLVMTargetParser.a  lib/libLLVMTransformUtils.a  lib/libLLVMVectorize.a  lib/libLLVMAArch64Utils.a  lib/libLLVMAsmPrinter.a  lib/libLLVMPasses.a  lib/libLLVMCFGuard.a  lib/libLLVMGlobalISel.a  lib/libLLVMCoroutines.a  lib/libLLVMipo.a  lib/libLLVMInstrumentation.a  lib/libLLVMLinker.a  lib/libLLVMVectorize.a  lib/libLLVMSandboxIR.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMFrontendOffloading.a  lib/libLLVMObjectYAML.a  lib/libLLVMFrontendAtomic.a  lib/libLLVMFrontendDirective.a  lib/libLLVMHipStdPar.a  lib/libLLVMIRPrinter.a  lib/libLLVMSelectionDAG.a  lib/libLLVMCodeGen.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMScalarOpts.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMCGData.a  lib/libLLVMBitWriter.a  lib/libLLVMTarget.a  lib/libLLVMTransformUtils.a  lib/libLLVMAnalysis.a  lib/libLLVMFrontendHLSL.a  lib/libLLVMProfileData.a  lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoGSYM.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMDebugInfoDWARFLowLevel.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMObject.a  lib/libLLVMIRReader.a  lib/libLLVMAsmParser.a  lib/libLLVMMCParser.a  lib/libLLVMBitReader.a  lib/libLLVMTextAPI.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMDebugInfoBTF.a  lib/libLLVMCore.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a  lib/libLLVMCodeGenTypes.a  lib/libLLVMMC.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a  lib/libLLVMSupport.a  lib/libLLVMDemangle.a  -lrt  -ldl  -lm  /usr/lib/x86_64-linux-gnu/libz.so && :
/usr/bin/ld: lib/libLLVMInstCombine.a(InstCombineSelect.cpp.o): in function `llvm::InstCombinerImpl::visitSelectInst(llvm::SelectInst&)::{lambda(bool, llvm::Value*, llvm::Value*)#1}::operator()(bool, llvm::Value*, llvm::Value*) const':
InstCombineSelect.cpp:(.text._ZZN4llvm16InstCombinerImpl15visitSelectInstERNS_10SelectInstEENKUlbPNS_5ValueES4_E_clEbS4_S4_+0x363): undefined reference to `ProfcheckDisableMetadataFixes'
collect2: error: ld returned 1 exit status
30.894 [180/7/5411] Linking CXX executable bin/clang-scan-deps
31.111 [180/6/5412] Linking CXX executable bin/clang-extdef-mapping
31.969 [180/5/5413] Linking CXX executable bin/llc
FAILED: bin/llc 
: && /usr/bin/c++ -D__OPTIMIZE__ -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-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,--export-dynamic  -Wl,-rpath-link,/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./lib   -Wl,--dependency-file=tools/llc/CMakeFiles/llc.dir/link.d tools/llc/CMakeFiles/llc.dir/llc.cpp.o tools/llc/CMakeFiles/llc.dir/NewPMDriver.cpp.o -o bin/llc  -Wl,-rpath,"\$ORIGIN/../lib:"  lib/libLLVMAArch64AsmParser.a  lib/libLLVMAArch64CodeGen.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Info.a  lib/libLLVMAnalysis.a  lib/libLLVMAsmPrinter.a  lib/libLLVMCodeGen.a  lib/libLLVMCodeGenTypes.a  lib/libLLVMCore.a  lib/libLLVMIRPrinter.a  lib/libLLVMIRReader.a  lib/libLLVMMC.a  lib/libLLVMMIRParser.a  lib/libLLVMPasses.a  lib/libLLVMRemarks.a  lib/libLLVMScalarOpts.a  lib/libLLVMSelectionDAG.a  lib/libLLVMSupport.a  lib/libLLVMTarget.a  lib/libLLVMTargetParser.a  lib/libLLVMTransformUtils.a  lib/libLLVMVectorize.a  lib/libLLVMIRPrinter.a  lib/libLLVMCoroutines.a  lib/libLLVMHipStdPar.a  lib/libLLVMipo.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMFrontendOffloading.a  lib/libLLVMObjectYAML.a  lib/libLLVMFrontendAtomic.a  lib/libLLVMFrontendDirective.a  lib/libLLVMLinker.a  lib/libLLVMInstrumentation.a  lib/libLLVMVectorize.a  lib/libLLVMSandboxIR.a  lib/libLLVMAArch64Utils.a  lib/libLLVMCFGuard.a  lib/libLLVMGlobalISel.a  lib/libLLVMSelectionDAG.a  lib/libLLVMCodeGen.a  lib/libLLVMScalarOpts.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMCGData.a  lib/libLLVMBitWriter.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMTransformUtils.a  lib/libLLVMCodeGenTypes.a  lib/libLLVMTarget.a  lib/libLLVMAnalysis.a  lib/libLLVMFrontendHLSL.a  lib/libLLVMProfileData.a  lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoGSYM.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMDebugInfoDWARFLowLevel.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMObject.a  lib/libLLVMIRReader.a  lib/libLLVMMCParser.a  lib/libLLVMBitReader.a  lib/libLLVMTextAPI.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMDebugInfoBTF.a  lib/libLLVMMC.a  lib/libLLVMAsmParser.a  lib/libLLVMCore.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a  lib/libLLVMSupport.a  lib/libLLVMDemangle.a  -lrt  -ldl  -lm  /usr/lib/x86_64-linux-gnu/libz.so && :
/usr/bin/ld: lib/libLLVMInstCombine.a(InstCombineSelect.cpp.o): in function `llvm::InstCombinerImpl::visitSelectInst(llvm::SelectInst&)::{lambda(bool, llvm::Value*, llvm::Value*)#1}::operator()(bool, llvm::Value*, llvm::Value*) const':
InstCombineSelect.cpp:(.text._ZZN4llvm16InstCombinerImpl15visitSelectInstERNS_10SelectInstEENKUlbPNS_5ValueES4_E_clEbS4_S4_+0x363): undefined reference to `ProfcheckDisableMetadataFixes'
collect2: error: ld returned 1 exit status
33.040 [180/4/5414] Linking CXX shared library lib/libclang.so.22.0.0git
33.051 [180/3/5415] Linking CXX executable bin/lli
33.219 [180/2/5416] Linking CXX executable bin/clang-check
33.844 [180/1/5417] Linking CXX shared library lib/libLTO.so.22.0git
FAILED: lib/libLTO.so.22.0git 
: && /usr/bin/c++ -fPIC -D__OPTIMIZE__ -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-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   -Wl,-rpath-link,/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/./lib  -Wl,--gc-sections  -Wl,--version-script,"/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/tools/lto/LTO.exports"  -Wl,--dependency-file=tools/lto/CMakeFiles/LTO.dir/link.d -shared -Wl,-soname,libLTO.so.22.0git -o lib/libLTO.so.22.0git tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o tools/lto/CMakeFiles/LTO.dir/lto.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:"  lib/libLLVMAArch64AsmParser.a  lib/libLLVMAArch64CodeGen.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Disassembler.a  lib/libLLVMAArch64Info.a  lib/libLLVMBitReader.a  lib/libLLVMCore.a  lib/libLLVMCodeGen.a  lib/libLLVMLTO.a  lib/libLLVMMC.a  lib/libLLVMMCDisassembler.a  lib/libLLVMSupport.a  lib/libLLVMTarget.a  lib/libLLVMTargetParser.a  lib/libLLVMAsmPrinter.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Info.a  lib/libLLVMAArch64Utils.a  lib/libLLVMPasses.a  lib/libLLVMCFGuard.a  lib/libLLVMGlobalISel.a  lib/libLLVMSelectionDAG.a  lib/libLLVMCodeGen.a  lib/libLLVMTarget.a  lib/libLLVMCodeGenTypes.a  lib/libLLVMCoroutines.a  lib/libLLVMHipStdPar.a  lib/libLLVMIRPrinter.a  lib/libLLVMCGData.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMExtensions.a  lib/libLLVMipo.a  lib/libLLVMVectorize.a  lib/libLLVMSandboxIR.a  lib/libLLVMBitWriter.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMScalarOpts.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMFrontendOffloading.a  lib/libLLVMObjectYAML.a  lib/libLLVMFrontendAtomic.a  lib/libLLVMFrontendDirective.a  lib/libLLVMInstCombine.a  lib/libLLVMInstrumentation.a  lib/libLLVMLinker.a  lib/libLLVMTransformUtils.a  lib/libLLVMAnalysis.a  lib/libLLVMProfileData.a  lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoGSYM.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMDebugInfoDWARFLowLevel.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMDebugInfoBTF.a  lib/libLLVMFrontendHLSL.a  lib/libLLVMObject.a  lib/libLLVMMCParser.a  lib/libLLVMMC.a  lib/libLLVMIRReader.a  lib/libLLVMBitReader.a  lib/libLLVMAsmParser.a  lib/libLLVMCore.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a  lib/libLLVMTextAPI.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a  lib/libLLVMSupport.a  lib/libLLVMDemangle.a  -lrt  -ldl  -lm  /usr/lib/x86_64-linux-gnu/libz.so && :
/usr/bin/ld: lib/libLLVMInstCombine.a(InstCombineSelect.cpp.o): in function `llvm::InstCombinerImpl::visitSelectInst(llvm::SelectInst&)::{lambda(bool, llvm::Value*, llvm::Value*)#1}::operator()(bool, llvm::Value*, llvm::Value*) const':
InstCombineSelect.cpp:(.text._ZZN4llvm16InstCombinerImpl15visitSelectInstERNS_10SelectInstEENKUlbPNS_5ValueES4_E_clEbS4_S4_+0x363): undefined reference to `ProfcheckDisableMetadataFixes'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

```

</details>

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


More information about the llvm-commits mailing list