mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-29 02:20:51 +00:00
* gprof.c (long_options): Add "--function-ordering" and
"--file-ordering" options. (usage): Add new options to usage message. (main): Handle new options. * gprof.h (STYLE_FUNCTION_ORDER): Define. (STYLE_FILE_ORDER): Define. (function_mapping_file): Declare. * cg_arcs.c (arcs, numarcs): New globals. (arc_add): Put new arcs into the arc array so the function/file ordering code can examine them. * cg_arcs.h (struct arc): New field "has_been_placed". (arcs, numarcs): Declare new globals. * core.c (symbol_map, symbol_map_count): New globals. (read_function_mappings): New function to read in a function to object map file. (core_init): Call read_function_mappings if a function mapping file exists. (core_create_function_syms): Handle function to object file mappings. * symtab.h (struct sym): New fields "mapped", "has_been_placed", "nuses", "prev". * cg_print.c (cmp_arc_count): New function for sorting arcs. (cmp_fun_nuses): Likewise for functions. (cg_print_function_ordering): New function to print a suggested function ordering. (cg_print_file_ordering): Likewise for ordering .o files. (order_and_dump_functions_by_arcs): Helper function for function and object file ordering code. Gprof changes for mentor vm work.
This commit is contained in:
@@ -36,9 +36,14 @@ typedef struct sym
|
||||
int line_num; /* source line number */
|
||||
unsigned int is_func:1, /* is this a function entry point? */
|
||||
is_static:1, /* is this a local (static) symbol? */
|
||||
is_bb_head:1; /* is this the head of a basic-blk? */
|
||||
is_bb_head:1, /* is this the head of a basic-blk? */
|
||||
mapped:1, /* this symbol was mapped to another name */
|
||||
has_been_placed:1; /* have we placed this symbol? */
|
||||
int ncalls; /* how many times executed */
|
||||
int nuses; /* how many times this symbol appears in
|
||||
a particular context */
|
||||
struct sym *next; /* for building chains of syms */
|
||||
struct sym *prev; /* for building chains of syms */
|
||||
|
||||
/* profile-specific information: */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user