diff options
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/gimple.texi | 13 | ||||
-rw-r--r-- | gcc/doc/install.texi | 49 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 38 |
3 files changed, 92 insertions, 8 deletions
diff --git a/gcc/doc/gimple.texi b/gcc/doc/gimple.texi index a78c52dcafc..76cc269aefe 100644 --- a/gcc/doc/gimple.texi +++ b/gcc/doc/gimple.texi @@ -691,12 +691,21 @@ Return true if the code of g is @code{GIMPLE_ASSIGN}. @end deftypefn @deftypefn {GIMPLE function} is_gimple_call (gimple g) -Return true if the code of g is @code{GIMPLE_CALL} +Return true if the code of g is @code{GIMPLE_CALL}. @end deftypefn +@deftypefn {GIMPLE function} is_gimple_debug (gimple g) +Return true if the code of g is @code{GIMPLE_DEBUG}. +@end deftypefn + @deftypefn {GIMPLE function} gimple_assign_cast_p (gimple g) Return true if g is a @code{GIMPLE_ASSIGN} that performs a type cast -operation +operation. +@end deftypefn + +@deftypefn {GIMPLE function} gimple_debug_bind_p (gimple g) +Return true if g is a @code{GIMPLE_DEBUG} that binds the value of an +expression to a variable. @end deftypefn @node Manipulating GIMPLE statements diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 7284020838c..d0f9839f705 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -2096,8 +2096,53 @@ Removes any @option{-O}-started option from @code{BOOT_CFLAGS}, and adds Analogous to @code{bootstrap-O1}. @item @samp{bootstrap-debug} -Builds stage2 without debug information, and uses -@file{contrib/compare-debug} to compare object files. +Verifies that the compiler generates the same executable code, whether +or not it is asked to emit debug information. To this end, this option +builds stage2 host programs without debug information, and uses +@file{contrib/compare-debug} to compare them with the stripped stage3 +object files. If @code{BOOT_CFLAGS} is overridden so as to not enable +debug information, stage2 will have it, and stage3 won't. This option +is enabled by default when GCC bootstrapping is enabled: in addition to +better test coverage, it makes default bootstraps faster and leaner. + +@item @samp{bootstrap-debug-big} +In addition to the checking performed by @code{bootstrap-debug}, this +option saves internal compiler dumps during stage2 and stage3 and +compares them as well, which helps catch additional potential problems, +but at a great cost in terms of disk space. + +@item @samp{bootstrap-debug-lean} +This option saves disk space compared with @code{bootstrap-debug-big}, +but at the expense of some recompilation. Instead of saving the dumps +of stage2 and stage3 until the final compare, it uses +@option{-fcompare-debug} to generate, compare and remove the dumps +during stage3, repeating the compilation that already took place in +stage2, whose dumps were not saved. + +@item @samp{bootstrap-debug-lib} +This option tests executable code invariance over debug information +generation on target libraries, just like @code{bootstrap-debug-lean} +tests it on host programs. It builds stage3 libraries with +@option{-fcompare-debug}, and it can be used along with any of the +@code{bootstrap-debug} options above. + +There aren't @code{-lean} or @code{-big} counterparts to this option +because most libraries are only build in stage3, so bootstrap compares +would not get significant coverage. Moreover, the few libraries built +in stage2 are used in stage3 host programs, so we wouldn't want to +compile stage2 libraries with different options for comparison purposes. + +@item @samp{bootstrap-debug-ckovw} +Arranges for error messages to be issued if the compiler built on any +stage is run without the option @option{-fcompare-debug}. This is +useful to verify the full @option{-fcompare-debug} testing coverage. It +must be used along with @code{bootstrap-debug-lean} and +@code{bootstrap-debug-lib}. + +@item @samp{bootstrap-time} +Arranges for the run time of each program started by the GCC driver, +built in any stage, to be logged to @file{time.log}, in the top level of +the build tree. @end table diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 8c1db6d7ed3..4aa4f52f0d6 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -311,6 +311,7 @@ Objective-C and Objective-C++ Dialects}. -frandom-seed=@var{string} -fsched-verbose=@var{n} @gol -fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose @gol -ftest-coverage -ftime-report -fvar-tracking @gol +-fvar-tracking-assigments -fvar-tracking-assignments-toggle @gol -g -g@var{level} -gtoggle -gcoff -gdwarf-@var{version} @gol -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol -fno-merge-debug-strings -fno-dwarf2-cfi-asm @gol @@ -4397,11 +4398,14 @@ assembler (GAS) to fail with an error. @opindex gdwarf-@var{version} Produce debugging information in DWARF format (if that is supported). This is the format used by DBX on IRIX 6. The value -of @var{version} may be either 2 or 3; the default version is 2. +of @var{version} may be either 2, 3 or 4; the default version is 2. Note that with DWARF version 2 some ports require, and will always use, some non-conflicting DWARF 3 extensions in the unwind tables. +Version 4 may require GDB 7.0 and @option{-fvar-tracking-assignments} +for maximum benefit. + @item -gvms @opindex gvms Produce debugging information in VMS debug format (if that is @@ -4445,9 +4449,12 @@ other options are processed, and it does so only once, no matter how many times it is given. This is mainly intended to be used with @option{-fcompare-debug}. -@item -fdump-final-insns=@var{file} -@opindex fdump-final-insns= -Dump the final internal representation (RTL) to @var{file}. +@item -fdump-final-insns@r{[}=@var{file}@r{]} +@opindex fdump-final-insns +Dump the final internal representation (RTL) to @var{file}. If the +optional argument is omitted (or if @var{file} is @code{.}), the name +of the dump file will be determined by appending @code{.gkd} to the +compilation output file name. @item -fcompare-debug@r{[}=@var{opts}@r{]} @opindex fcompare-debug @@ -5446,6 +5453,23 @@ It is enabled by default when compiling with optimization (@option{-Os}, @option{-O}, @option{-O2}, @dots{}), debugging information (@option{-g}) and the debug info format supports it. +@item -fvar-tracking-assignments +@opindex fvar-tracking-assignments +@opindex fno-var-tracking-assignments +Annotate assignments to user variables early in the compilation and +attempt to carry the annotations over throughout the compilation all the +way to the end, in an attempt to improve debug information while +optimizing. Use of @option{-gdwarf-4} is recommended along with it. + +It can be enabled even if var-tracking is disabled, in which case +annotations will be created and maintained, but discarded at the end. + +@item -fvar-tracking-assignments-toggle +@opindex fvar-tracking-assignments-toggle +@opindex fno-var-tracking-assignments-toggle +Toggle @option{-fvar-tracking-assignments}, in the same way that +@option{-gtoggle} toggles @option{-g}. + @item -print-file-name=@var{library} @opindex print-file-name Print the full absolute name of the library file @var{library} that @@ -8094,6 +8118,12 @@ with more basic blocks than this parameter won't have loop invariant motion optimization performed on them. The default value of the parameter is 1000 for -O1 and 10000 for -O2 and above. +@item min-nondebug-insn-uid +Use uids starting at this parameter for nondebug insns. The range below +the parameter is reserved exclusively for debug insns created by +@option{-fvar-tracking-assignments}, but debug insns may get +(non-overlapping) uids above it if the reserved range is exhausted. + @end table @end table |