Cazalet-Hyams, Orlando via llvm-dev
2020-Sep-22 15:42 UTC
[llvm-dev] Optimised-code debugging experience Round Table
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200922/fd3457f2/attachment.html>
Eric Christopher via llvm-dev
2020-Sep-22 18:41 UTC
[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 >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200922/f737f352/attachment.html>
Robinson, Paul via llvm-dev
2020-Sep-23 14:20 UTC
[llvm-dev] Optimised-code debugging experience Round Table
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.
* 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.
* 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.
* This is basically about IR/MIR transforms, and is where an Og/O1 kind
of topic would fit.
* 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.
* This is obviously about DWARF itself, although to some extent how we go
about generating it.
* Take better advantage of ranges and the .debug_addr table. dblaikie
and clayborg have put up ideas about this.
* 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.
* 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”?
* 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<mailto: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<mailto: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<mailto: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<mailto: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/20200923/d9609c46/attachment.html>