[llvm-dev] Optimised-code debugging experience Round Table
Eric Christopher via llvm-dev
llvm-dev at lists.llvm.org
Thu Sep 24 12:41:17 PDT 2020
Hi Paul,
I took it rather as a set of suggested topics depending on who is
interested rather than a proposed agenda.
-eric
On Wed, Sep 23, 2020 at 7:20 AM Robinson, Paul <paul.robinson at sony.com>
wrote:
> Hi Eric & Orlando,
>
>
>
> It’s great to see interest in a lot of different aspects of debug info. At
> the same time, I’m concerned about a risk to making the topic so broad that
> we don’t have time to get through all the things people want to get
> through. I’m thinking there’s a different way to slice the topics,
> hopefully without much overlap, but that will allow a bit more focus. No
> doubt a lot of the same people would be interested in multiple slices, but
> by limiting the scope of each conversation I’m hoping we’ll get more
> accomplished. I daresay a lot of people interested in debug-info quality
> in general might totally tune out a DWARF-nerd discussion 😊
>
> The slicing could be something like this:
>
>
>
> 1. Getting LLVM to do a better job of tracking info internally, so
> what gets emitted in the end is more representative of the original
> program. This should improve the debugging experience by letting the
> debugger do a better job of mapping the executing program to the original
> source, because the data it works with is more accurate/complete.
> 1. This is basically about IR/Metadata handling and representation,
> although it might leak into things like the “is_stmt” flag, and doing
> better with “prologue_end,” which are currently handled by AsmPrinter.
> 2. Better handling of induction variables, entry-values, variables
> with multiple locations, etc.
> 2. Changes to optimization passes/pipelines and codegen, to avoid
> borking the source-location and value/variable tracking; again this should
> improve the debugging experience by letting the debugger do a better job of
> mapping the executing program back to the original source, because that
> mapping is simpler.
> 1. This is basically about IR/MIR transforms, and is where an Og/O1
> kind of topic would fit.
> 2. Also things like extended lifetimes, limiting code
> motion/duplication, etc.
> 3. Changing the DWARF spec itself to improve the completeness and
> efficiency of the information it contains. This should improve the
> debugging experience by making the DWARF itself a richer information
> source, to the extent that it can describe more of what happened to the
> original program; also hopefully any efficiency improvements will allow the
> debugger to be more responsive.
> 1. This is obviously about DWARF itself, although to some extent
> how we go about generating it.
> 2. Take better advantage of ranges and the .debug_addr table.
> dblaikie and clayborg have put up ideas about this.
> 3. Figure out a way to allow tracking multiple source locations for
> an individual instruction. Right now we mostly give up and set locations
> to line-0 when this happens.
> 4. Understand the competing needs of profiling and debugging
> consumers, and see what might be doable there. (Although this might be
> tough enough to be its own topic.)
> 4. Debug-info testing/validation. How do we decide what is
> “correct”?
> 1. What are the tools we have, what are they good/bad at, what’s
> missing?
>
>
>
> I hear that round-tables can be proposed for either ~half hour or ~full
> hour, so with more focused topics we might rather have shorter sessions?
>
>
>
> Thanks,
>
> --paulr
>
>
>
> *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Eric
> Christopher via llvm-dev
> *Sent:* Tuesday, September 22, 2020 2:42 PM
> *To:* Cazalet-Hyams, Orlando <orlando.hyams at sony.com>; LLDB Dev <
> lldb-dev at lists.llvm.org>
> *Cc:* llvm-dev at lists.llvm.org
> *Subject:* Re: [llvm-dev] Optimised-code debugging experience Round Table
>
>
>
> +LLDB Dev <lldb-dev at lists.llvm.org>
>
>
>
> I'll sign up. :)
>
>
>
> My particular interests are:
>
>
>
> - Og (and O1 as Og)
>
> - Correctness testing tools
>
>
>
> Past that the rest of your list seems quite specific, but the overall
> "line tables" and "variable locations" are important.
>
>
>
> Relatedly we have a number of DWARF committee members in llvm and another
> possible discussion area could be: "what extensions do debug info consumers
> think should happen to make dwarf a better input into debugging".
>
>
>
> Thanks.
>
>
>
> -eric
>
>
>
>
>
> On Tue, Sep 22, 2020 at 8:43 AM Cazalet-Hyams, Orlando via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
> Hi all,
>
>
>
> I haven't seen a proposal for an optimised-code debugging experience Round
> Table yet so here goes!
>
> Please let me know if you are interested by emailing me at:
>
>
>
> orlando.hyams at sony.com
>
>
>
> Below is a non-exhaustive list of possible topics. Feel free to include
> any preferences and
>
> suggestions in your response.
>
>
>
> a. Line tables:
>
> 1. Can we fix is_stmt?
>
> 2. Is prologue_end reliable?
>
> 3. General stepping behaviour/quality.
>
>
>
> b. Variable locations:
>
> 1. The state of DW_OP_entry_values in llvm.
>
> 2. The state of the instruction-referencing DBG_VALUE work.
>
> 3. The state of multi-register DWARF expressions in llvm.
>
> 4. The possibility of salvaging out-of-liveness values using the 3
> projects mentioned above.
>
> 5. Floating point debug-info quality in llvm.
>
> 6. Loop induction variable locations.
>
>
>
> c. Testing debug-info:
>
> 1. Variable correctness testing tools.
>
> 2. Location coverage testing tools.
>
>
>
> d. The state of -Og.
>
>
>
> Please respond before Friday (25th) if you are interested as that is the
> submission deadline.
>
>
>
> Thanks,
>
> Orlando
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <https://urldefense.com/v3/__https:/lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev__;!!JmoZiZGBv3RvKRSx!qZNIykNGKyisLnvZ4ZEA_BQPbabOTQucziiEgm1DmJ154Z_DBQc8k6R5JENTM2Ewyg$>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200924/8b372a59/attachment.html>
More information about the llvm-dev
mailing list