[PATCH] D75036: [DebugInfo] Describe call site values for chains of expression producing instrs
David Stenberg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 27 05:50:01 PST 2020
dstenb closed this revision.
dstenb marked an inline comment as done.
dstenb added a comment.
Oh, it seems that I missed to specify the repository for this patch. This was pushed as:
commit 6d857166d218ccedfff3b177a4489420e3bdd603 (HEAD -> master, origin/master, origin/HEAD)
Author: David Stenberg <david.stenberg at ericsson.com>
Date: Thu Feb 27 09:54:37 2020 +0100
[DebugInfo] Describe call site values for chains of expression producing instrs
Summary:
If the describeLoadedValue() hook produced a DIExpression when
describing a instruction, and it was not possible to emit a call site
entry directly (the value operand was not an immediate nor a preserved
register), then that described value could not be inserted into the
worklist, and would instead be dropped, meaning that the parameter's
call site value couldn't be described.
This patch extends the worklist so that each entry has an DIExpression
that is built up when iterating through the instructions.
This allows us to describe instruction chains like this:
$reg0 = mv $fp
$reg0 = add $reg0, offset
call @call_with_offseted_fp
Since DW_OP_LLVM_entry_value operations can't be combined with any other
expression, such call site entries will not be emitted. I have added a
test, dbgcall-site-expr-entry-value.mir, which verifies that we don't
assert or emit broken DWARF in such cases.
Reviewers: djtodoro, aprantl, vsk
Reviewed By: djtodoro, vsk
Subscribers: hiraditya, llvm-commits
Tags: #debug-info, #llvm
Differential Revision: https://reviews.llvm.org/D75036
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75036/new/
https://reviews.llvm.org/D75036
More information about the llvm-commits
mailing list