diff options
author | Pedro Lobo <pedro.lobo@tecnico.ulisboa.pt> | 2025-03-03 09:55:41 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-03 10:55:41 +0100 |
commit | 05589ee455334530addaabc56205f05df0954caf (patch) | |
tree | 55374ec96b2c140e590e9b334352d8fe1e98afa8 /llvm | |
parent | 75bfdebdeee3a8783a5e6cae3fb8370091329a83 (diff) | |
download | llvm-05589ee455334530addaabc56205f05df0954caf.zip llvm-05589ee455334530addaabc56205f05df0954caf.tar.gz llvm-05589ee455334530addaabc56205f05df0954caf.tar.bz2 |
[Metadata] Replace `undef` VAMs with `poison` VAMs (#129450)
`undef` debug info can be replaced with `poison` debug info.
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/IR/Metadata.cpp | 7 | ||||
-rw-r--r-- | llvm/test/DebugInfo/X86/undef-dbg-val.ll | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/IR/Metadata.cpp b/llvm/lib/IR/Metadata.cpp index e3a4684..6fb7494 100644 --- a/llvm/lib/IR/Metadata.cpp +++ b/llvm/lib/IR/Metadata.cpp @@ -339,7 +339,8 @@ void ReplaceableMetadataImpl::SalvageDebugInfo(const Constant &C) { ValueAsMetadata *MD = I->second; using UseTy = std::pair<void *, std::pair<MetadataTracking::OwnerTy, uint64_t>>; - // Copy out uses and update value of Constant used by debug info metadata with undef below + // Copy out uses and update value of Constant used by debug info metadata with + // poison below SmallVector<UseTy, 8> Uses(MD->UseMap.begin(), MD->UseMap.end()); for (const auto &Pair : Uses) { @@ -349,7 +350,7 @@ void ReplaceableMetadataImpl::SalvageDebugInfo(const Constant &C) { // Check for MetadataAsValue. if (isa<MetadataAsValue *>(Owner)) { cast<MetadataAsValue *>(Owner)->handleChangedMetadata( - ValueAsMetadata::get(UndefValue::get(C.getType()))); + ValueAsMetadata::get(PoisonValue::get(C.getType()))); continue; } if (!isa<Metadata *>(Owner)) @@ -359,7 +360,7 @@ void ReplaceableMetadataImpl::SalvageDebugInfo(const Constant &C) { continue; if (isa<DINode>(OwnerMD)) { OwnerMD->handleChangedOperand( - Pair.first, ValueAsMetadata::get(UndefValue::get(C.getType()))); + Pair.first, ValueAsMetadata::get(PoisonValue::get(C.getType()))); } } } diff --git a/llvm/test/DebugInfo/X86/undef-dbg-val.ll b/llvm/test/DebugInfo/X86/undef-dbg-val.ll index 61f3776c..02b94d9 100644 --- a/llvm/test/DebugInfo/X86/undef-dbg-val.ll +++ b/llvm/test/DebugInfo/X86/undef-dbg-val.ll @@ -1,5 +1,5 @@ ; RUN: opt -S -passes=globalopt --experimental-debuginfo-iterators=false <%s | FileCheck %s -; CHECK: #dbg_value(ptr undef, +; CHECK: #dbg_value(ptr poison, ; CHECK-SAME: [[VAR:![0-9]+]], ; CHECK-SAME: !DIExpression() ; CHECK: [[VAR]] = !DILocalVariable(name: "_format" |