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