[PATCH] D99423: [DebugInfo] Fix incorrect updating of SDNode dependencies for variadic debug values

Stephen Tozer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 9 06:41:20 PDT 2021


StephenTozer updated this revision to Diff 336437.
StephenTozer added a comment.

Sanitizer builds were failing due to memory leaks; these were caused by the fact that SDDbgValues are allocated under a BumpPtrAllocator, which does not call destructors. SDDbgValues contained SmallVectors which did not use this allocator, so when the SDDbgValues were cleared they would not call the SmallVector destructor.

This has been resolved by replacing each SmallVector with a std::shared_ptr that uses the BumpPtrAllocator, so there will be no memory allocated outside of this allocator and hence no leaks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99423/new/

https://reviews.llvm.org/D99423

Files:
  llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/test/CodeGen/X86/dbg-list-dependencies.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99423.336437.patch
Type: text/x-patch
Size: 23134 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210409/e8c0b33c/attachment.bin>


More information about the llvm-commits mailing list