diff options
author | Stephen Tozer <Stephen.Tozer@Sony.com> | 2021-04-08 17:56:25 +0100 |
---|---|---|
committer | Stephen Tozer <Stephen.Tozer@Sony.com> | 2021-04-12 12:51:29 +0100 |
commit | aa3e78a59fdf3b211be72f1b3221af831665e67d (patch) | |
tree | 0c58058fe114fbf2be6df888797abf7f05353a1d /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | |
parent | dff922f39b9bf49b243f6f00c7c9a2e3de77e20e (diff) | |
download | llvm-aa3e78a59fdf3b211be72f1b3221af831665e67d.zip llvm-aa3e78a59fdf3b211be72f1b3221af831665e67d.tar.gz llvm-aa3e78a59fdf3b211be72f1b3221af831665e67d.tar.bz2 |
Reapply "[DebugInfo] Correctly track SDNode dependencies for list debug values"
Fixed memory leak error by using BumpAllocator for SDDbgValue arrays.
This reverts commit 1b589172bd19b83e8137185ed11f50bba06e8766.
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index a9de603..9e14e85 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -1302,8 +1302,8 @@ bool SelectionDAGBuilder::handleDebugValue(ArrayRef<const Value *> Values, bool IsVariadic) { if (Values.empty()) return true; - SDDbgValue::LocOpVector LocationOps; - SDDbgValue::SDNodeVector Dependencies; + SmallVector<SDDbgOperand> LocationOps; + SmallVector<SDNode *> Dependencies; for (const Value *V : Values) { // Constant value. if (isa<ConstantInt>(V) || isa<ConstantFP>(V) || isa<UndefValue>(V) || @@ -1331,7 +1331,6 @@ bool SelectionDAGBuilder::handleDebugValue(ArrayRef<const Value *> Values, // Only emit func arg dbg value for non-variadic dbg.values for now. if (!IsVariadic && EmitFuncArgumentDbgValue(V, Var, Expr, dl, false, N)) return true; - Dependencies.push_back(N.getNode()); if (auto *FISDN = dyn_cast<FrameIndexSDNode>(N.getNode())) { // Construct a FrameIndexDbgValue for FrameIndexSDNodes so we can // describe stack slot locations. @@ -1343,6 +1342,7 @@ bool SelectionDAGBuilder::handleDebugValue(ArrayRef<const Value *> Values, // dbg.value(i32* %px, !"int x", !DIExpression(DW_OP_deref)) // // Both describe the direct values of their associated variables. + Dependencies.push_back(N.getNode()); LocationOps.emplace_back(SDDbgOperand::fromFrameIdx(FISDN->getIndex())); continue; } |