diff options
author | Josef Zlomek <zlomekj@suse.cz> | 2004-02-06 21:03:45 +0100 |
---|---|---|
committer | Josef Zlomek <zlomek@gcc.gnu.org> | 2004-02-06 20:03:45 +0000 |
commit | 014a1138d6ff79eff9aea704d5e8ae3f58fef5d1 (patch) | |
tree | f57616e19dba86e71b7eabf273b9af5e97701906 /gcc/doc | |
parent | 298c28a8f4e43c22d3ad390699192f2dfa8fca70 (diff) | |
download | gcc-014a1138d6ff79eff9aea704d5e8ae3f58fef5d1.zip gcc-014a1138d6ff79eff9aea704d5e8ae3f58fef5d1.tar.gz gcc-014a1138d6ff79eff9aea704d5e8ae3f58fef5d1.tar.bz2 |
Josef Zlomek <zlomekj@suse.cz>
Josef Zlomek <zlomekj@suse.cz>
* Makefile.in (var-tracking.o): New.
* common.opt (fvar-tracking): New.
* flags.h (flag_var_tracking): New.
* gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
* opts.c (common_handle_option): Add OPT_fvar_tracking.
* print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
* rtl.c (note_insn_name): Likewise.
* rtl.def (VAR_LOCATION): New.
* rtl.h (NOTE_VAR_LOCATION): New.
(NOTE_VAR_LOCATION_DECL): New.
(NOTE_VAR_LOCATION_LOC): New.
(enum insn_note): NOTE_INSN_VAR_LOCATION was added.
(variable_tracking_main): New exported function.
* timevar.def (TV_VAR_TRACKING): New.
* toplev.c (enum dump_file_index): Added DFI_vartrack.
(dump_file): "vartrack" was added (-dV).
(flag_var_tracking): New.
(f_options): "var-tracking" was added.
(rest_of_handle_variable_tracking): New function.
(rest_of_compilation): Run variable tracking.
(process_options): If user has not specified flag_var_tracking set it
according to optimize, debug_info_level and debug_hooks.
* tree.h (frame_base_decl): New.
* var-tracking.c: New file.
* config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
(ia64_override_options): Set flags to run variable tracking in machine
dependent reorg instead of toplev.c.
(ia64_reorg): Run variable tracking if wanted.
* doc/invoke.texi: Mention variable tracking in -dV,
add and -fvar-tracking.
* doc/passes.texi: Added variable tracking pass.
Daniel Berlin <dberlin@dberlin.org>
* debug.h (struct gcc_debug_hooks): Added var_location debug hook.
* dbxout.c (dbx_debug_hooks): Likewise.
(xcoff_debug): Likewise.
* debug.c (do_nothing_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_debug_hooks): Likewise.
* dwarfout.c (dwarf_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* final.c (final_scan_insn): Call var_location debug hook for each
NOTE_INSN_VAR_LOCATION.
Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>
From-SVN: r77418
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/invoke.texi | 13 | ||||
-rw-r--r-- | gcc/doc/passes.texi | 13 |
2 files changed, 25 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index e4b02b0..2a8d919 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -251,7 +251,7 @@ in the following sections. -feliminate-dwarf2-dups -feliminate-unused-debug-types @gol -feliminate-unused-debug-symbols -fmem-report -fprofile-arcs @gol -frandom-seed=@var{string} -fsched-verbose=@var{n} @gol --ftest-coverage -ftime-report @gol +-ftest-coverage -ftime-report -fvar-tracking @gol -g -g@var{level} -gcoff -gdwarf-2 @gol -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol -p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol @@ -3313,6 +3313,7 @@ Dump callgraph and unit-at-a-time optimization @file{@var{file}.00.unit}. @item V @opindex dV Dump after the value profile transformations, to @file{@var{file}.13.vpt}. +Also dump after variable tracking, to @file{@var{file}.35.vartrack}. @item w @opindex dw Dump after the second flow pass, to @file{@var{file}.27.flow2}. @@ -3467,6 +3468,16 @@ executing the program itself. The second number is ``system time,'' time spent executing operating system routines on behalf of the program. Both numbers are in seconds. +@item -fvar-tracking +@opindex fvar-tracking +Run variable tracking pass. It computes where variables are stored at each +position in code. Better debugging information is then generated +(if the debugging information format supports this information). + +It is enabled by default when compiling with optimization (@option{-Os}, +@option{-O}, @option{-O2}, ...), debugging information (@option{-g}) and +the debug info format supports it. + @item -print-file-name=@var{library} @opindex print-file-name Print the full absolute name of the library file @var{library} that diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index 6bbc61c..a71c7c6 100644 --- a/gcc/doc/passes.texi +++ b/gcc/doc/passes.texi @@ -507,6 +507,19 @@ The option @option{-dB} causes a debugging dump of the RTL code after this pass. This dump file's name is made by appending @samp{.bbro} to the input file name. +@cindex variable tracking +@item +Variable tracking. This pass computes where the variables are stored at each +position in code and generates notes describing the variable locations +to RTL code. The location lists are then generated according to these +notes to debug information if the debugging information format supports +location lists. + +@opindex dV +The option @option{-dV} causes a debugging dump of the RTL code after +this pass. This dump file's name is made by appending @samp{.vartrack} +to the input file name. + @cindex delayed branch scheduling @cindex scheduling, delayed branch @item |