egcs/gcc ChangeLog c-common.c c-decl.c expr.h ...
Ken Raeburn
raeburn@cygnus.com
Thu Jul 30 10:38:00 GMT 1998
CVSROOT: /egcs/carton/cvsfiles
Module name: egcs
Changes by: raeburn@egcs.cygnus.com 98/07/30 10:38:23
Modified files:
gcc : ChangeLog c-common.c c-decl.c expr.h
extend.texi flags.h function.c function.h
invoke.texi optabs.c toplev.c tree.h
gcc/testsuite : ChangeLog
gcc/testsuite/gcc.c-torture/special: special.exp
Added files:
gcc/testsuite/gcc.c-torture/special: eeprof-1.c
Log message:
Function entry/exit profiling instrumentation:
* expr.h (profile_function_entry_libfunc, profile_function_exit_libfunc):
Declare new variables.
* optabs.c: Define them here.
(init_optabs): Initialize them.
* tree.h (struct tree_decl): New flag no_instrument_function_entry_exit.
(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
* c-decl.c (duplicate_decls): Merge it.
* c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
(init_attributes): Use it for "no_instrument_function".
(decl_attributes): Handle it, for functions that have not yet been compiled.
Set decl flag.
* flags.h (flag_instrument_function_entry_exit): Declare new variable.
* toplev.c (flag_instrument_function_entry_exit): Define it here.
(f_options): New option "instrument-functions".
* function.h (struct function): New field instrument_entry_exit.
* function.c (current_function_instrument_entry_exit): New variable.
(push_function_context_to, pop_function_context_from): Save and restore.
(expand_function_start): Set current_ variable, maybe emit return label and
entry profile call.
(expand_function_end): Maybe emit exit profile call.
Testsuite:
* gcc.c-torture/special/eeprof-1.c: New test, for -finstrument-functions.
* gcc.c-torture/special/special.exp: Run it.
More information about the Gcc-cvs
mailing list