diff options
author | Jeff Law <law@redhat.com> | 1995-12-31 06:36:30 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1995-12-31 06:36:30 +0000 |
commit | 64c50fc5db62e96b429cd2f2e166e878569f4a15 (patch) | |
tree | 440c0e7c9b11ad2afa68adf0a5b3e1ccb7106ca5 /gprof/gprof.texi | |
parent | 71128bd7a98889baab8044ccc1138a62371dda4c (diff) | |
download | gdb-64c50fc5db62e96b429cd2f2e166e878569f4a15.zip gdb-64c50fc5db62e96b429cd2f2e166e878569f4a15.tar.gz gdb-64c50fc5db62e96b429cd2f2e166e878569f4a15.tar.bz2 |
* 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.
Diffstat (limited to 'gprof/gprof.texi')
-rw-r--r-- | gprof/gprof.texi | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gprof/gprof.texi b/gprof/gprof.texi index 1bf6315..bb1490d 100644 --- a/gprof/gprof.texi +++ b/gprof/gprof.texi @@ -394,6 +394,46 @@ cumulative data in the file @file{gmon.sum}. @item -T The @samp{-T} option causes @code{gprof} to print its output in ``traditional'' BSD style. + +@item --function-ordering +The @samp{--function-ordering} option causes @code{gprof} to print a +suggested function ordering for the program based on profiling data. +This option suggests an ordering which may improve paging, tlb and +cache behavior for the program on systems which support arbitrary +ordering of functions in an executable. + +The exact details of how to force the linker to place functions +in a particular order is system dependent and out of the scope of this +manual. + +@item --file-ordering @var{map_file} +The @samp{--file-ordering} option causes @code{gprof} to print a +suggested .o link line ordering for the program based on profiling data. +This option suggests an ordering which may improve paging, tlb and +cache behavior for the program on systems which do not support arbitrary +ordering of functions in an executable. + +Use of the @samp{-a} argument is highly recommended with this option. + +The @var{map_file} argument is a pathname to a file which provides +function name to object file mappings. The format of the file is similar to +the output of the program @code{nm}. + +@smallexample +@group +c-parse.o:00000000 T yyparse +c-parse.o:00000004 C yyerrflag +c-lang.o:00000000 T maybe_objc_method_name +c-lang.o:00000000 T print_lang_statistics +c-lang.o:00000000 T recognize_objc_keyword +c-decl.o:00000000 T print_lang_identifier +c-decl.o:00000000 T print_lang_type +@dots{} + +@end group +@end smallexample + +GNU @code{nm} @samp{--extern-only} @samp{--defined-only} @samp{-v} @samp{--print-file-name} can be used to create @var{map_file}. @end table @node Flat Profile |