Displaying 20 results from an estimated 10000 matches similar to: "[RFC] A value-tracking LiveDebugValues implementation"
2020 Feb 24
5
[RFC] DebugInfo: A different way of specifying variable locations post-isel
Hi debuginfo cabal,
tl;dr: I'd like to know what people think about an alternative to
DBG_VALUE instructions describing variable locations in registers,
virtual or real. Before instruction selection in LLVM-IR we identify
the _values_ of variables [0] by the instruction that computes the
value; I believe we should be able to do the same post-isel, and it
would avoid having to analyse register
2020 Feb 25
2
[RFC] DebugInfo: A different way of specifying variable locations post-isel
Hi Vedant, thanks for the detailed response,
On Tue, Feb 25, 2020 at 7:23 AM Vedant Kumar <vedant_kumar at apple.com> wrote:
> > Finally, being forced to always specify both the machine location and
> > the program location at the same time (in a single DBG_VALUE)
> > introduces un-necessary burdens. In MachineSink, when we sink between
> > blocks an instruction that
2020 Nov 11
1
[RFC] A value-tracking LiveDebugValues implementation
Hi Xiang,
On Wed, Nov 11, 2020 at 1:59 AM Zhang, Xiang1 <xiang1.zhang at intel.com> wrote:
> Jeremy wrote:
> > ... The value %0 is live up to and including the ADD64ri but not past it, meaning LLVM today will drop the DBG_VALUE ...
>
> Just a little puzzle about the " drop the DBG_VALUE ", maybe I didn't get your key point,
>
2020 Nov 06
2
[DebugInfo] A value-tracking variable location update
Hi debug-info folks,
Time for another update on the variable location "instruction referencing"
implementation I've been doing, see this RFC [0, 1] for background. It's now at
the point where I'd call it "done" (as far as software ever is), and so it's a
good time to look at what results it produces. And here are the
scores-on-the-doors using llvm-locstats, on
2016 May 12
2
[LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
> On May 12, 2016, at 11:00 AM, Francois Pichet <pichet2000 at gmail.com> wrote:
>
> Here is a specific case that make the debugging experiences degraded on my target:
> This is a loop simplified CFG:
>
> BB#0:
> %R5<def> = OR_rr %R0, %R49 // this is %R5 only def.
> DBG_VALUE %R5, %noreg, !"argc", <!18>; line no:4
> Successors
2020 Jun 22
2
[RFC] A value-tracking LiveDebugValues implementation
Hi Adrian,
> quite a lot of work
Large amounts of credit should go to llvm-reduce, which was fundamental to
getting any of this done,
> I've skimmed your implementation and it looks nice and well-documented.
The thing that worries me is the over-complicated lattices -- I didn't
anticipate the problem, and there's a risk that it's more complex than it
needs to be. As it
2020 Sep 09
2
[RFC] [DebugInfo] Using DW_OP_entry_value within LLVM IR
Hi Djordje,
On Wed, Sep 9, 2020 at 7:52 AM Djordje Todorovic
<Djordje.Todorovic at syrmia.com> wrote:
> Using entry-values ('callee' side of the feature) is not enough in any case. It is always connected to the call-site-param (function arguments but we call it call-site-params; 'caller' side of the feature) debug info. I believe that there are call-site-params that could
2020 Sep 01
4
[RFC] [DebugInfo] Using DW_OP_entry_value within LLVM IR
Hi all,
The debug entry values feature introduces new DWARF symbols (tags, attributes, operations) on caller (call site) as well as on callee side; and the intention is to improve debugging user experience by using the functionality (especially in “optimized” code by turning “<optimized_out>” values into real values). The call site information includes info about call itself (described with
2020 Sep 01
2
[RFC] [DebugInfo] Using DW_OP_entry_value within LLVM IR
Hi David,
Thanks for your comments!
I just want to add that I think it would neat if the entry values could map into
multi-location dbg.values and DBG_VALUEs that are being proposed on this list.
For example, if we have:
int local = param1 + param2 + 123;
I think it would be good if we would be able to to represent the four different
permutations of the values of the parameters being
2018 Apr 30
0
[SelectionDAG] DbgValue nodes aren't transferred
Hi Jonas,
I have another case that DBG_VALUE is not produced. I would appreciate it if you could take a quick look at the testcase below.
test code:
llc -mtriple=aarch64 -stop-after=livedebugvalues -o - test.ll
; Function Attrs: nounwind ssp uwtable
define void @f() #0 !dbg !4 {
entry:
tail call void @h(i16 0) #2, !dbg !14
%call = tail call i16 (...) @g() #2, !dbg !15
tail call void
2018 Apr 30
2
[SelectionDAG] DbgValue nodes aren't transferred
> On Apr 30, 2018, at 1:49 PM, Se Jong Oh <sejooh at microsoft.com> wrote:
>
> Hi Jonas,
>
> I have another case that DBG_VALUE is not produced. I would appreciate it if you could take a quick look at the testcase below.
>
>
> test code:
>
> llc -mtriple=aarch64 -stop-after=livedebugvalues -o - test.ll
>
> ; Function Attrs: nounwind ssp uwtable
>
2018 Mar 15
1
[SelectionDAG] DbgValue nodes aren't transferred
> On Mar 14, 2018, at 7:55 PM, Se Jong Oh <sejooh at microsoft.com> wrote:
>
> Hi Jonas,
>
> Thanks for taking a look! It makes linear-dbg-value.ll pass for my target by producing DEBUG_VALUEs correctly. I also tried a simple function with few operations and confirmed DEBUG_VALUEs which are not produced without trasferDbgValues in SetPromotedInteger.
That’s great news! Do
2020 Nov 06
0
[DebugInfo] A value-tracking variable location update
Awesome to read how it's coming along - I'm mostly aside from the
debug location work, but had just one or two clarifying questions
On Fri, Nov 6, 2020 at 10:27 AM Jeremy Morse
<jeremy.morse.llvm at gmail.com> wrote:
>
> Hi debug-info folks,
>
> Time for another update on the variable location "instruction referencing"
> implementation I've been doing,
2017 Sep 06
4
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
On Wed, Sep 6, 2017 at 10:01 AM, David Blaikie <dblaikie at gmail.com> wrote:
> On Tue, Sep 5, 2017 at 1:00 PM Reid Kleckner via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> LLVM SSA values obviously do not have an address that we can take and
>> they don’t live in registers, so neither the default memory location model
>> nor DW_OP_regN make sense
2018 Mar 14
2
[SelectionDAG] DbgValue nodes aren't transferred
Hi Jonas,
Thanks for taking a look! It makes linear-dbg-value.ll pass for my target by producing DEBUG_VALUEs correctly. I also tried a simple function with few operations and confirmed DEBUG_VALUEs which are not produced without trasferDbgValues in SetPromotedInteger.
Thanks,
Sejong
From: jdevlieghere at apple.com <jdevlieghere at apple.com>
Sent: Wednesday, March 14, 2018 4:07 AM
To: Se
2016 May 11
3
[LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
The most obvious place where it is lacking at the moment is that it only supports DBG_VALUEs in registers. Adding support for constant values, memory locations, and fp constants would be a big win!
thanks,
Adrian
> On May 11, 2016, at 2:52 PM, Francois Pichet <pichet2000 at gmail.com> wrote:
>
> In retrospect I totally agree with you. I am looking at LiveDebugValue again to see
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
On Wed, Sep 6, 2017 at 5:01 PM, David Blaikie <dblaikie at gmail.com> wrote:
> On Wed, Sep 6, 2017 at 2:01 PM Reid Kleckner <rnk at google.com> wrote:
>
>> On Wed, Sep 6, 2017 at 10:01 AM, David Blaikie <dblaikie at gmail.com>
>> wrote:
>>
>>> I guess you described this already, but talking it through for
>>> myself/maybe others will
2020 Oct 07
2
[Debuginfo] Changing llvm.dbg.value and DBG_VALUE to support multiple location operands
> I don't see how this is a meaningful distinction in LLVM IR. In LLVM IR we only have SSA values. An SSA value could be an alloca, or a gep into an alloca, or spilled onto the stack at the MIR level, in which case the dbg.value should get lowered into a memory location (if it isn't explicitly a DW_OP_stack_value).
I think the distinction is still important; even at the IR level, if we
2020 Sep 08
2
[RFC] [DebugInfo] Using DW_OP_entry_value within LLVM IR
Hi Djordje,
[Late reply as I was away, alas],
For the example in https://reviews.llvm.org/D85012 , I'm not sure that
just using an entry value is correct. The reason why the dbg.values
for arguments are set to undef is not because the value can't be
described, it's because deadargelim changes all the call sites to pass
in 'undef', which I believe makes the value unrecoverable
2020 Sep 16
2
[Debuginfo] Changing llvm.dbg.value and DBG_VALUE to support multiple location operands
> That makes sense, and I think for "direct" values in your definition it is true that all direct values are r-values.
> Why do we need DW_OP_LLVM_direct when we already have DW_OP_LLVM_stack_value? Can you give an example of something that is definitely not a stack value, but direct?
The difference in definition is the intention: DW_OP_LLVM_direct means "we'd like this