[PATCH] D90717: [llvm] Add a test for debug info generated with split functions.

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 5 17:23:54 PST 2020


dblaikie added inline comments.


================
Comment at: llvm/test/DebugInfo/X86/machine-function-splitter.ll:48
+;; llvm-profdata merge -o default.profdata default_*.profraw
+;; clang -fprofile-use -O2 -g -S -emit-llvm split_functions.c
+;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
----------------
snehasish wrote:
> dblaikie wrote:
> > tmsriram wrote:
> > > dblaikie wrote:
> > > > MaskRay wrote:
> > > > > tmsriram wrote:
> > > > > > Do we need a -gsplit-dwarf fission test too?
> > > > > The current test only checks -g1 line table. If it targets -g2 (and I think it probably should), I expect that more stuff should be tested.
> > > > > Adding @dblaikie who knows better how to construct an interesting test.
> > > > If this is a general discussion of "What debug info related things should we test for bb-sections in the LLVM project" it'd be good to get a quick summary of what testing already exists.
> > > > 
> > > > But otherwise, broad testing I'd think:
> > > > * llvm-symbolizer testing (check a couple of addresses in different bb sections, covering an inlined function)
> > > > * llvm-dwarfdump of a linked executable showing bb section line table, DW_AT_ranges on the DW_TAG_subprogram
> > > > 
> > > > But maybe both of these tests are already checked in/implemented?
> > > > 
> > > > I don't think there's much need for Split DWARF-specific testing, as the Split DWARF handling of ranges is fairly orthogonal to where they appear (shouldn't be interesting to Split DWARF that the ranges appear on a DW_TAG_subprogram, I don't think).
> > > Yes the llvm-dwarfdump and the split dwarf testing of DW_AT_ranges is already there:  test/DebugInfo/X86/basic-block-sections_1.ll
> > > I didnt add a llvm-symbolizer test, only did lldb tests.  I can add a symbolizer test.
> > Could the coverage this new test is adding be added to the existing test? Looks like this new test is intended to cover the line table - which could be added to expanded coverage in the basic-block-sections_1.ll by dumping debug_line as well as debug_info (adding "-debug-line" to those existing dwarfdump commands)
> I think there is value in having a simple test for the line table which many downstream tools rely on. We should add a line table test for basic block sections too. 
Generally we'd test all the things related to a feature/new/interesting output in the same place. Sometimes worth splitting into multiple files, but there's some benefits to keeping it all together (can page in the context for one feature area, less test process overhead, etc). Admittedly, the tests aren't especially rigorously laid out by any means.

And I see I got this jumbled up between split-machine-functions and bb-sections. What's the difference between those two features? I /guess/ that split-machine-functions is a specific application of/builds on top of bb-sections?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90717/new/

https://reviews.llvm.org/D90717



More information about the llvm-commits mailing list