summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/target
diff options
context:
space:
mode:
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2018-07-03 11:29:00 +0000
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2018-07-03 11:29:00 +0000
commit8dd6cf711f75f296cdeae2be7c6760b29cc68f57 (patch)
treea1e3029820549696b5c0108370d8382bbc1e0dac /lldb/packages/Python/lldbsuite/test/python_api/target
parentfd171f2f893d0bf1e7d2af0200c31a7df32b2553 (diff)
downloadbcm5719-llvm-8dd6cf711f75f296cdeae2be7c6760b29cc68f57.tar.gz
bcm5719-llvm-8dd6cf711f75f296cdeae2be7c6760b29cc68f57.zip
[DebugInfo] Corrections for salvageDebugInfo
Summary: When salvaging a dbg.declare/dbg.addr we should not add DW_OP_stack_value to the DIExpression (see test/Transforms/InstCombine/salvage-dbg-declare.ll). Consider this example %vla = alloca i32, i64 2 call void @llvm.dbg.declare(metadata i32* %vla, metadata !1, metadata !DIExpression()) Instcombine will turn it into %vla1 = alloca [2 x i32] %vla1.sub = getelementptr inbounds [2 x i32], [2 x i32]* %vla, i64 0, i64 0 call void @llvm.dbg.declare(metadata [2 x i32]* %vla1.sub, metadata !19, metadata !DIExpression()) If the GEP can be eliminated, then the dbg.declare will be salvaged and we should get %vla1 = alloca [2 x i32] call void @llvm.dbg.declare(metadata [2 x i32]* %vla1, metadata !19, metadata !DIExpression()) The problem was that salvageDebugInfo did not recognize dbg.declare as being indirect (%vla1 points to the value, it does not hold the value), so we incorrectly got call void @llvm.dbg.declare(metadata [2 x i32]* %vla1, metadata !19, metadata !DIExpression(DW_OP_stack_value)) I also made sure that llvm::salvageDebugInfo and DIExpression::prependOpcodes do not add DW_OP_stack_value to the DIExpression in case no new operands are added to the DIExpression. That way we avoid to, unneccessarily, turn a register location expression into an implicit location expression in some situations (see test11 in test/Transforms/LICM/sinking.ll). Reviewers: aprantl, vsk Reviewed By: aprantl, vsk Subscribers: JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D48837 llvm-svn: 336191
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/target')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud