[llvm-dev] Concatenating DWARF location expressions (original) (raw)
Adrian Prantl via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 25 12:47:49 PST 2019
- Previous message: [llvm-dev] Concatenating DWARF location expressions
- Next message: [llvm-dev] Concatenating DWARF location expressions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jan 25, 2019, at 10:31 AM, Markus Lavin <markus.lavin at ericsson.com> wrote:
From: aprantl at apple.com <aprantl at apple.com> Since it sounds like the problem is only with implicit descriptions, would a rule such as "if the expression has a DWOPstackvalue, add an extra DWOPderef" work for the PrologueEpilgueInserter or do we need something more principled? Right, that could very well be sufficient for this particular case so I will experiment with that. In general though and for the future it seems that it would be of benefit to have additional metadata in the expressions indicating if they describe e.g. a memory address, a value or whatnot.
That is more a property of what the expression is bound to (via a llvm.dbg.* intrinsic, a DIGlobalVariablesExpression) than of the DIExpression. The only thing we can say by inspecting the DIExpression alone is when it would have to be lowered into an implicit location description (because of the DW_OP_stack_value). We could easily add a bool isImplicit()
member to DIExpression that returns true if a DW_OP_stack_value is present.
Do you think it makes sense to distinguish between memory and register addresses at the IR metadata level already?
This would perhaps allow us to implement a simple debug expression verifier.
What kind of properties would you like to verify?
-- adrian
- Previous message: [llvm-dev] Concatenating DWARF location expressions
- Next message: [llvm-dev] Concatenating DWARF location expressions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]