This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [GSOC] LTO dump tool project


Hi.

There were some questions from Hrishikesh about requested goals
of the project. Thus I would like to specify what I'm aware of:

1) symbol table
   - list all symbols
   - print details info about a symbol (symtab_node::debug)
   - print GIMPLE body of a function
     - I would like to see supporting levels what we have e.g.:

-fdump-tree-optimized-blocks
-fdump-tree-optimized-stats

It's defined in dumpfile.h:
enum dump_flag

   - I would like to see constructor of a global variable:
    DECL_INITIAL (...), probably print_generic_expr will work

we can consider adding similar options seen in nm:

       --no-demangle
           Do not demangle low-level symbol names.  This is the default.

       -p
       --no-sort
           Do not bother to sort the symbols in any order; print them in the order encountered.
       -S
       --print-size
           Print both value and size of defined symbols for the "bsd" output style.  This option has no effect for object formats that do not record symbol sizes, unless --size-sort is also used in which case a calculated size is displayed.
       -r
       --reverse-sort
           Reverse the order of the sort (whether numeric or alphabetic); let the last come first.

       --defined-only
           Display only defined symbols for each object file.

       --size-sort
           Sort symbols by size.  For ELF objects symbol sizes are read from the ELF, for other object types the symbol sizes are computed as the difference between the value of the symbol and the value of the symbol with the next higher value.  If the "bsd" output
           format is used the size of the symbol is printed, rather than the value, and -S must be used in order both size and value to be printed.

It's just for inspiration, see man nm

2) statistics
   - GIMPLE and TREE statistics, similar to what we do for -fmem-report

3) LTO objects
   - we should list read files, archives, ... and print some stats about it

4) tree types
   - list types
   - print one (debug_tree) with different verbosity level, again 'enum dump_flag'

5) visualization
   - should be done, via -fdump-ipa-icf-graph, generates .dot file. Should be easy to use.

6) separation to lto-dump binary
   - here I can help, I'll cook a patch for it

I believe it's a series of small patches that can implement that. I hope you'll
invent even more options as you play with LTO.

Martin




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]