diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-06 20:11:55 +0000 |
commit | 5f757f3ff9144b609b3c433dfd370cc6bdc191ad (patch) | |
tree | 1b4e980b866cd26a00af34c0a653eb640bd09caf /contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp | |
parent | 3e1c8a35f741a5d114d0ba670b15191355711fe9 (diff) | |
parent | 312c0ed19cc5276a17bacf2120097bec4515b0f1 (diff) |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp b/contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp index 531b0a624daf..47c6bcbaf26e 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Utils/MemoryOpRemark.cpp @@ -321,8 +321,10 @@ void MemoryOpRemark::visitVariable(const Value *V, bool FoundDI = false; // Try to get an llvm.dbg.declare, which has a DILocalVariable giving us the // real debug info name and size of the variable. - for (const DbgVariableIntrinsic *DVI : - FindDbgDeclareUses(const_cast<Value *>(V))) { + SmallVector<DbgDeclareInst *, 1> DbgDeclares; + SmallVector<DPValue *, 1> DPValues; + findDbgDeclares(DbgDeclares, const_cast<Value *>(V), &DPValues); + auto FindDI = [&](const auto *DVI) { if (DILocalVariable *DILV = DVI->getVariable()) { std::optional<uint64_t> DISize = getSizeInBytes(DILV->getSizeInBits()); VariableInfo Var{DILV->getName(), DISize}; @@ -331,7 +333,10 @@ void MemoryOpRemark::visitVariable(const Value *V, FoundDI = true; } } - } + }; + for_each(DbgDeclares, FindDI); + for_each(DPValues, FindDI); + if (FoundDI) { assert(!Result.empty()); return; |