[llvm] [IR] Simplify HasCachedHash with is_detected (NFC) (PR #159510)

Mikael Holmen via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 18 11:18:23 PDT 2025


mikaelholmen wrote:

Hi,

I have no idea what is happening but I noticed that if we build this patch with clang (wer're using 18.1) and run lit tests then the following tests fail:
```
Failed Tests (16):
  LLVM :: Analysis/TypeBasedAliasAnalysis/dse.ll
  LLVM :: CodeGen/AArch64/merge-scoped-aa-store.ll
  LLVM :: DebugInfo/macro_link.ll
  LLVM :: Linker/unique-fwd-decl-a.ll
  LLVM :: Linker/unique-fwd-decl-order.ll
  LLVM :: Transforms/LoadStoreVectorizer/AMDGPU/aa-metadata.ll
  LLVM :: Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
  LLVM :: Verifier/noalias_scope_decl.ll
  LLVM-Unit :: IR/./IRTests/GenericDINodeTest/get
  LLVM-Unit :: IR/./IRTests/IRBuilderTest/DIBuilderMacro
  LLVM-Unit :: IR/./IRTests/MDNodeTest/DistinctOnUniquingCollision
  LLVM-Unit :: IR/./IRTests/MDNodeTest/NullOperand
  LLVM-Unit :: IR/./IRTests/MDNodeTest/UniquedOnDeletedOperand
  LLVM-Unit :: IR/./IRTests/MDNodeTest/handleChangedOperandRecursion
  LLVM-Unit :: IR/./IRTests/MDNodeTest/replaceWithPermanent
  LLVM-Unit :: IR/./IRTests/MDNodeTest/replaceWithUniquedChangedOperand
```
One example of a failure:
```
 FAIL: LLVM-Unit :: IR/./IRTests/3/26 (82881 of 87022)
 ******************** TEST 'LLVM-Unit :: IR/./IRTests/3/26' FAILED ********************
 Script(shard):
 --
 GTEST_OUTPUT=json:/repo/llvm-main-clang/build-all-builtins/unittests/IR/./IRTests-LLVM-Unit-28624-3-26.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=26 GTEST_SHARD_INDEX=3 /repo/llvm-main-clang/build-all-builtins/unittests/IR/./IRTests
 --

 Script:
 --
 /repo/llvm-main-clang/build-all-builtins/unittests/IR/./IRTests --gtest_filter=MDNodeTest.UniquedOnDeletedOperand
 --
 ../llvm-project/llvm/unittests/IR/MetadataTest.cpp:555: Failure
 Expected equality of these values:
   N
     Which is: 0x556bd162d658
   MDTuple::get(Context, NullOps)
     Which is: 0x556bd162d688


 ../llvm-project/llvm/unittests/IR/MetadataTest.cpp:555
 Expected equality of these values:
   N
     Which is: 0x556bd162d658
   MDTuple::get(Context, NullOps)
     Which is: 0x556bd162d688
```
If we build with gcc (13.3) everything seem to work.

So something funny seems to happen, at least when using clang 18.1.

Does anyone else see this?

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


More information about the llvm-commits mailing list