[PATCH] D51976: [DebugInfo][Dexter] Speculated BB presents illegal variable value to debugger

Paul Robinson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 17 14:30:37 PDT 2018


probinson added a comment.

In https://reviews.llvm.org/D51976#1237392, @vsk wrote:

> I expect that extending dbg.value in this way will be fairly involved. There are a couple questions worth thinking about, imo:
>
> - Would the extra SSA values need to be constants (or live in registers)? If not, how will their locations be represented in a TAG_variable entry?
> - What's the expected memory size overhead of adding an extra operand to dbg.value? Does it need to be counterbalanced by introducing dbg.value.simple() [for the case where there is an empty DIExpression/extended SSA stack]?


Metadata already knows how to do lists, I'd suggest that rather than a variable-length argument list to the intrinsic (if there aren't other considerations that make this problematic).

> - How will LiveDebugVariables determine where to insert DBG_VALUEs into the MI stream when there are extra SSA values? How do you ensure that the live intervals of those values aren't disjoint?

The values that feed into a DIExpression must dominate the instruction referencing the DIExpression (he said casually waving his hands).
Whether that's easy or hard to enforce is a different question.

> I think we should separate out the task of investigating these questions (& maybe collecting some numbers with a prototype) from driving this patch forward.

And the design discussion ought to be on llvm-dev rather than buried in a code review....

> My preference would be to land this patch as-is.

+1


https://reviews.llvm.org/D51976





More information about the llvm-commits mailing list