[lld] [llvm] Reapply "Use an abbrev to reduce size of VALUE_GUID records in ThinLTO summaries" (#90610) (PR #90692)

Kamau Bridgeman via llvm-commits llvm-commits at lists.llvm.org
Mon May 6 11:05:35 PDT 2024


kamaub wrote:

I believe the culprit commit is [[test][sanitizer] Check LINKER_IS_LLD to detect LLD](https://github.com/llvm/llvm-project/commit/2344a72dd63661098244b3bc43696710686ef9d9).

I took d751e407def4e1540ae0af12a179ce4f2a8f676c as my top of trunk and was able to reproduce locally by adding `clang.16.0.1/bin/lld` to my $PATH variable then building with gcc as [clang-ppc64le-linux-multistage](https://lab.llvm.org/buildbot/#/builders/121) does: 
```
cmake-3.28.2/bin/cmake -G Ninja ../llvm-project/llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=True '-DLLVM_LIT_ARGS='"'"'-v'"'"'' -DCMAKE_INSTALL_PREFIX=../stage1.install -DLLVM_ENABLE_ASSERTIONS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache '-DLLVM_ENABLE_PROJECTS=clang-tools-extra;llvm;clang' -DLLVM_ENABLE_RUNTIMES=compiler-rt && ninja -j 96 && ninja -j 96 check-all
```
 Using this I was able to reproduce `FAIL: Profile-powerpc64le :: instrprof-gc-sections.c (81665 of 84128)` and then after:
```
$ git revert 2344a72
Auto-merging compiler-rt/CMakeLists.txt
[main bcffe4472175] Revert "[test][sanitizer] Check LINKER_IS_LLD  to detect LLD"
 1 file changed, 6 insertions(+), 8 deletions(-)
```
it changed to `UNSUPPORTED: Profile-powerpc64le :: instrprof-gc-sections.c (81472 of 84128)`
I think this is the expected behavior and it also matches the behavior what Hans [reported](https://github.com/llvm/llvm-project/commit/2344a72dd63661098244b3bc43696710686ef9d9#commitcomment-128524063) on the same changeset.

@vitalybuka can you please take a look. The reproducing condition is to observe that `lld` test cases are being ran and tested when `lld` is not build or set to be linked with (ppc links with `ld` by default). For some reason your change ends up searching for `lld` general availability which would mean it test the wrong lld and gives a false positive/negative.


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


More information about the llvm-commits mailing list