This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[3.2 PATCH] PR c/761: Document command line options


Gerald Pfeifer suggested that I backport my "Document or remove command
line options" patch to the gcc-3_2-branch.  Unfortunately both the source
code and documentation have diverged so much that very little of the
mainline patch applies cleanly.

I've decided that its safest to only backport the documentation changes.
The redundant command line options do no harm on the branch, especially
as they're not documented.  Given that the C/C++ option handling wasn't
unified into c-opts.c when 3.2 forked, there's no point risking a "new"
source code change.

The following patch therefore just cut-n-pastes the text of the original
patch into 3.2's invoke.texi.  I've retested it on i686-pc-linux-gnu
with "make dvi", where it fixes the last overfull hbox in invoke.texi.

Ok for the gcc-3_2-branch?


2002-10-22  Roger Sayle  <roger@eyesopen.com>

	PR c/761
	* doc/invoke.texi: Fix some overfull hboxes in "make dvi".
	Document --version, -feliminate-dwarf-2-dups, -fno-sched-interblock,
	-fno-sched-spec, -fsched-spec-load, -fsched-spec-load-dangerous,
	-fsched-verbose=n, -fno-branch-count-reg and -fbounds-check.


Index: doc/invoke.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/invoke.texi,v
retrieving revision 1.119.2.12.4.6
diff -c -3 -p -r1.119.2.12.4.6 invoke.texi
*** doc/invoke.texi	10 Oct 2002 17:48:51 -0000	1.119.2.12.4.6
--- doc/invoke.texi	23 Oct 2002 03:03:31 -0000
*************** in the following sections.
*** 157,163 ****
  @xref{Overall Options,,Options Controlling the Kind of Output}.
  @gccoptlist{
  -c  -S  -E  -o @var{file}  -pipe  -pass-exit-codes  -x @var{language} @gol
! -v  -###  --target-help  --help}

  @item C Language Options
  @xref{C Dialect Options,,Options Controlling C Dialect}.
--- 157,163 ----
  @xref{Overall Options,,Options Controlling the Kind of Output}.
  @gccoptlist{
  -c  -S  -E  -o @var{file}  -pipe  -pass-exit-codes  -x @var{language} @gol
! -v  -###  --help  --target-help  --version}

  @item C Language Options
  @xref{C Dialect Options,,Options Controlling C Dialect}.
*************** in the following sections.
*** 236,243 ****

  @item C-only Warning Options
  @gccoptlist{
! -Wbad-function-cast  -Wmissing-declarations  -Wmissing-prototypes @gol
! -Wnested-externs  -Wstrict-prototypes  -Wtraditional}

  @item Debugging Options
  @xref{Debugging Options,,Options for Debugging Your Program or GCC}.
--- 236,244 ----

  @item C-only Warning Options
  @gccoptlist{
! -Wbad-function-cast  -Wmissing-declarations @gol
! -Wmissing-prototypes  -Wnested-externs @gol
! -Wstrict-prototypes  -Wtraditional}

  @item Debugging Options
  @xref{Debugging Options,,Options for Debugging Your Program or GCC}.
*************** in the following sections.
*** 247,254 ****
  -fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol
  -fdump-tree-original@r{[}-@var{n}@r{]} -fdump-tree-optimized@r{[}-@var{n}@r{]} @gol
  -fdump-tree-inlined@r{[}-@var{n}@r{]} @gol
! -fmem-report  -fpretend-float @gol
! -fprofile-arcs  -ftest-coverage  -ftime-report @gol
  -g  -g@var{level}  -gcoff  -gdwarf  -gdwarf-1  -gdwarf-1+  -gdwarf-2 @gol
  -ggdb  -gstabs  -gstabs+  -gvms  -gxcoff  -gxcoff+ @gol
  -p  -pg  -print-file-name=@var{library}  -print-libgcc-file-name @gol
--- 248,256 ----
  -fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol
  -fdump-tree-original@r{[}-@var{n}@r{]} -fdump-tree-optimized@r{[}-@var{n}@r{]} @gol
  -fdump-tree-inlined@r{[}-@var{n}@r{]} @gol
! -feliminate-dwarf2-dups  -fmem-report  -fpretend-float @gol
! -fprofile-arcs  -fsched-verbose=@var{n} @gol
! -ftest-coverage  -ftime-report @gol
  -g  -g@var{level}  -gcoff  -gdwarf  -gdwarf-1  -gdwarf-1+  -gdwarf-2 @gol
  -ggdb  -gstabs  -gstabs+  -gvms  -gxcoff  -gxcoff+ @gol
  -p  -pg  -print-file-name=@var{library}  -print-libgcc-file-name @gol
*************** in the following sections.
*** 261,266 ****
--- 263,269 ----
  @gccoptlist{
  -falign-functions=@var{n}  -falign-jumps=@var{n} @gol
  -falign-labels=@var{n}  -falign-loops=@var{n}  @gol
+ -fbounds-check @gol
  -fbranch-probabilities  -fcaller-saves -fcprop-registers @gol
  -fcse-follow-jumps  -fcse-skip-blocks  -fdata-sections @gol
  -fdelayed-branch  -fdelete-null-pointer-checks @gol
*************** in the following sections.
*** 269,275 ****
  -fgcse  -fgcse-lm  -fgcse-sm @gol
  -finline-functions  -finline-limit=@var{n}  -fkeep-inline-functions @gol
  -fkeep-static-consts  -fmerge-constants  -fmerge-all-constants @gol
! -fmove-all-movables  -fno-default-inline  -fno-defer-pop @gol
  -fno-function-cse  -fno-guess-branch-probability @gol
  -fno-inline  -fno-math-errno  -fno-peephole  -fno-peephole2 @gol
  -funsafe-math-optimizations -fno-trapping-math @gol
--- 272,279 ----
  -fgcse  -fgcse-lm  -fgcse-sm @gol
  -finline-functions  -finline-limit=@var{n}  -fkeep-inline-functions @gol
  -fkeep-static-consts  -fmerge-constants  -fmerge-all-constants @gol
! -fmove-all-movables  -fno-branch-count-reg @gol
! -fno-default-inline  -fno-defer-pop @gol
  -fno-function-cse  -fno-guess-branch-probability @gol
  -fno-inline  -fno-math-errno  -fno-peephole  -fno-peephole2 @gol
  -funsafe-math-optimizations -fno-trapping-math @gol
*************** in the following sections.
*** 278,283 ****
--- 282,289 ----
  -freduce-all-givs -fregmove  -frename-registers @gol
  -frerun-cse-after-loop  -frerun-loop-opt @gol
  -fschedule-insns  -fschedule-insns2 @gol
+ -fno-sched-interblock  -fno-sched-spec @gol
+ -fsched-spec-load  -fsched-spec-load-dangerous @gol
  -fsingle-precision-constant  -fssa -fssa-ccp -fssa-dce @gol
  -fstrength-reduce  -fstrict-aliasing  -fthread-jumps @gol
  -ftrapv -funroll-all-loops  -funroll-loops  @gol
*************** be displayed.
*** 915,920 ****
--- 921,930 ----
  @opindex target-help
  Print (on the standard output) a description of target specific command
  line options for each tool.
+
+ @item --version
+ @opindex version
+ Display the version number and copyrights of the invoked GCC.
  @end table

  @node Invoking G++
*************** and DWARF2, neither @option{-gdwarf} nor
*** 2861,2866 ****
--- 2871,2882 ----
  a concatenated debug level.  Instead use an additional @option{-g@var{level}}
  option to change the debug level for DWARF1 or DWARF2.

+ @item -feliminate-dwarf2-dups
+ @opindex feliminate-dwarf2-dups
+ Compress DWARF2 debugging information by eliminating duplicated
+ information about each symbol.  This option only makes sense when
+ generating DWARF2 debugging information with @option{-gdwarf-2}.
+
  @cindex @code{prof}
  @item -p
  @opindex p
*************** Dump after all tree based optimization,
*** 3180,3185 ****
--- 3196,3218 ----
  Dump after function inlining, to @file{@var{file}.inlined}.
  @end table

+ @item -fsched-verbose=@var{n}
+ @opindex fsched-verbose
+ On targets that use instruction scheduling, this option controls the
+ amount of debugging output the scheduler prints.  This information is
+ written to standard error, unless @option{-dS} or @option{-dR} is
+ specified, in which case it is output to the usual dump
+ listing file, @file{.sched} or @file{.sched2} respectively.  However
+ for @var{n} greater than nine, the output is always printed to standard
+ error.
+
+ For @var{n} greater than zero, @option{-fsched-verbose} outputs the
+ same information as @option{-dRS}.  For @var{n} greater than one, it
+ also output basic block probabilities, detailed ready list information
+ and unit/insn info.  For @var{n} greater than two, it includes RTL
+ at abort point, control-flow and regions info.  And for @var{n} over
+ four, @option{-fsched-verbose} also includes dependence info.
+
  @item -fpretend-float
  @opindex fpretend-float
  When running a cross-compiler, pretend that the target machine uses the
*************** types.  Languages like C or C++ require
*** 3484,3489 ****
--- 3517,3530 ----
  have distinct location, so using this option will result in non-conforming
  behavior.

+ @item -fno-branch-count-reg
+ @opindex fno-branch-count-reg
+ Do not use ``decrement and branch'' instructions on a count register,
+ but instead generate a sequence of instructions that decrement a
+ register, compare it against zero, then branch based upon the result.
+ This option is only meaningful on architectures that support such
+ instructions, which include x86, PowerPC, IA-64 and S/390.
+
  @item -fno-function-cse
  @opindex fno-function-cse
  Do not put function addresses in registers; make each instruction that
*************** an exact implementation of IEEE or ISO r
*** 3546,3551 ****
--- 3587,3600 ----
  math functions.

  The default is @option{-ftrapping-math}.
+
+ @item -fbounds-check
+ @opindex fbounds-check
+ For front-ends that support it, generate additional code to check that
+ indices used to access arrays are within the declared range.  This is
+ currenly only supported by the Java and Fortran 77 front-ends, where
+ this option defaults to true and false respectively.
+
  @end table

  The following options control specific optimizations.  The @option{-O2}
*************** Similar to @option{-fschedule-insns}, bu
*** 3672,3677 ****
--- 3721,3750 ----
  instruction scheduling after register allocation has been done.  This is
  especially useful on machines with a relatively small number of
  registers and where memory load instructions take more than one cycle.
+
+ @item -fno-sched-interblock
+ @opindex fno-sched-interblock
+ Don't schedule instructions across basic blocks.  This is normally
+ enabled by default when scheduling before register allocation, i.e.@:
+ with @option{-fschedule-insns} or at @option{-O2} or higher.
+
+ @item -fno-sched-spec
+ @opindex fno-sched-spec
+ Don't allow speculative motion of non-load instructions.  This is normally
+ enabled by default when scheduling before register allocation, i.e.@:
+ with @option{-fschedule-insns} or at @option{-O2} or higher.
+
+ @item -fsched-spec-load
+ @opindex fsched-spec-load
+ Allow speculative motion of some load instructions.  This only makes
+ sense when scheduling before register allocation, i.e.@: with
+ @option{-fschedule-insns} or at @option{-O2} or higher.
+
+ @item -fsched-spec-load-dangerous
+ @opindex fsched-spec-load-dangerous
+ Allow speculative motion of more load instructions.  This only makes
+ sense when scheduling before register allocation, i.e.@: with
+ @option{-fschedule-insns} or at @option{-O2} or higher.

  @item -ffunction-sections
  @itemx -fdata-sections

Roger
--
Roger Sayle,                         E-mail: roger@eyesopen.com
OpenEye Scientific Software,         WWW: http://www.eyesopen.com/
Suite 1107, 3600 Cerrillos Road,     Tel: (+1) 505-473-7385
Santa Fe, New Mexico, 87507.         Fax: (+1) 505-473-0833


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]