OSDN Git Service

config:
[pf3gnuchains/gcc-fork.git] / gcc / invoke.texi
index 52586dd..00d4876 100644 (file)
@@ -90,7 +90,7 @@ in the following sections.
 @item Overall Options
 @xref{Overall Options,,Options Controlling the Kind of Output}.
 @smallexample
--c  -S  -E  -o @var{file}  -pipe  -pass-exit-codes  -v  --help  -x @var{language}
+-c  -S  -E  -o @var{file}  -pipe  -pass-exit-codes  -v  --target-help  --help  -x @var{language}
 @end smallexample
 
 @item C Language Options
@@ -173,11 +173,11 @@ in the following sections.
 -fdata-sections  -ffunction-sections  -fgcse 
 -finline-functions  -finline-limit=@var{n}  -fkeep-inline-functions
 -fmove-all-movables  -fno-default-inline  -fno-defer-pop
--fno-function-cse  -fno-inline  -fno-peephole
+-fno-function-cse  -fno-inline  -fno-peephole -ftrapv
 -fomit-frame-pointer  -foptimize-register-moves -foptimize-sibling-calls
--fregmove -frerun-cse-after-loop  -frerun-loop-opt  -freduce-all-givs
--fschedule-insns  -fschedule-insns2  -fssa -fstrength-reduce
--fstrict-aliasing  -fthread-jumps  -funroll-all-loops
+-fregmove  -frename-registers  -frerun-cse-after-loop  -frerun-loop-opt
+-freduce-all-givs  -fschedule-insns  -fschedule-insns2  -fssa
+-fstrength-reduce  -fstrict-aliasing  -fthread-jumps  -funroll-all-loops
 -funroll-loops 
 -O  -O0  -O1  -O2  -O3 -Os
 @end smallexample
@@ -367,9 +367,8 @@ in the following sections.
 -mfix7000 -mno-crt0
 
 @emph{i386 Options}
--mcpu=@var{cpu type}
--march=@var{cpu type}
--mieee-fp  -mno-fancy-math-387
+-mcpu=@var{cpu type} -march=@var{cpu type}
+-mintel-syntax -mieee-fp  -mno-fancy-math-387
 -mno-fp-ret-in-387  -msoft-float  -msvr3-shlib
 -mno-wide-multiply  -mrtd  -malign-double
 -mreg-alloc=@var{list}  -mregparm=@var{num}
@@ -646,6 +645,10 @@ invoked by @code{gcc}, so that they can display the command line options
 they accept.  If the @code{-W} option is also specified then command
 line options which have no documentation associated with them will also
 be displayed.
+
+@item --target-help
+Print (on the standard output) a description of target specific command
+line options for each tool.
 @end table
 
 @node Invoking G++
@@ -1813,6 +1816,13 @@ Storage-class specifiers like @code{static} are not the first things in
 a declaration.  According to the C Standard, this usage is obsolescent.
 
 @item
+The return type of a function has a type qualifier such as @code{const}.
+Such a type qualifier has no effect, since the value returned by a
+function is not an lvalue.  (But don't warn about the GNU extension of
+@code{volatile void} return types.  That extension will be warned about
+if @samp{-pedantic} is specified.)
+
+@item
 If @samp{-Wall} or @samp{-Wunused} is also specified, warn about unused
 arguments.
 
@@ -2012,6 +2022,16 @@ be taken to manually verify functions actually do not ever return before
 adding the @code{noreturn} attribute, otherwise subtle code generation
 bugs could be introduced.
 
+@item -Wmissing-format-attribute
+If @samp{-Wformat} is enabled, also warn about functions which might be
+candidates for @code{format} attributes.  Note these are only possible
+candidates, not absolute ones.  GCC will guess that @code{format}
+attributes might be appropriate for any function that calls a function
+like @code{vprintf} or @code{vscanf}, but this might not always be the
+case, and some functions for which @code{format} attributes are
+appropriate may not be detected.  This option has no effect unless
+@samp{-Wformat} is enabled (possibly by @samp{-Wall}).
+
 @item -Wpacked
 Warn if a structure is given the packed attribute, but the packed
 attribute has no effect on the layout or size of the structure.  
@@ -2359,13 +2379,13 @@ Annotate the assembler output with miscellaneous debugging information.
 @item b
 Dump after computing branch probabilities, to @file{@var{file}.11.bp}.
 @item B
-Dump after block reordering, to @file{@var{file}.25.bbro}.
+Dump after block reordering, to @file{@var{file}.26.bbro}.
 @item c
 Dump after instruction combination, to the file @file{@var{file}.14.combine}.
 @item C
 Dump after the first if conversion, to the file @file{@var{file}.15.ce}.
 @item d
-Dump after delayed branch scheduling, to @file{@var{file}.28.dbr}.
+Dump after delayed branch scheduling, to @file{@var{file}.29.dbr}.
 @item D
 Dump all macro definitions, at the end of preprocessing, in addition to
 normal output.
@@ -2373,13 +2393,15 @@ normal output.
 Dump after SSA optimizations, to @file{@var{file}.05.ssa} and
 @file{@var{file}.06.ussa}.
 @item E
-Dump after the second if conversion, to @file{@var{file}.21.ce2}.
+Dump after the second if conversion, to @file{@var{file}.24.ce2}.
 @item f
 Dump after life analysis, to @file{@var{file}.13.life}.
 @item F
 Dump after purging @code{ADDRESSOF} codes, to @file{@var{file}.04.addressof}.
 @item g
 Dump after global register allocation, to @file{@var{file}.19.greg}.
+@item o
+Dump after post-reload CSE and other optimizations, to @file{@var{file}.20.postreload}.
 @item G      
 Dump after GCSE, to @file{@var{file}.08.gcse}.
 @item i
@@ -2387,7 +2409,7 @@ Dump after sibling call optimizations, to @file{@var{file}.01.sibling}.
 @item j
 Dump after the first jump optimization, to @file{@var{file}.02.jump}.
 @item J
-Dump after the last jump optimization, to @file{@var{file}.26.jump2}.
+Dump after the last jump optimization, to @file{@var{file}.27.jump2}.
 @item k
 Dump after conversion from registers to stack, to @file{@var{file}.29.stack}.
 @item l
@@ -2396,7 +2418,7 @@ Dump after local register allocation, to @file{@var{file}.18.lreg}.
 Dump after loop optimization, to @file{@var{file}.09.loop}.
 @item M
 Dump after performing the machine dependent reorganisation pass, to
-@file{@var{file}.27.mach}. 
+@file{@var{file}.28.mach}. 
 @item n
 Dump after register renumbering, to @file{@var{file}.23.rnreg}.
 @item N
@@ -2405,7 +2427,7 @@ Dump after the register move pass, to @file{@var{file}.16.regmove}.
 Dump after RTL generation, to @file{@var{file}.00.rtl}.
 @item R
 Dump after the second instruction scheduling pass, to
-@file{@var{file}.24.sched2}.
+@file{@var{file}.25.sched2}.
 @item s
 Dump after CSE (including the jump optimization that sometimes follows
 CSE), to @file{@var{file}.03.cse}. 
@@ -2416,7 +2438,7 @@ Dump after the first instruction scheduling pass, to
 Dump after the second CSE pass (including the jump optimization that
 sometimes follows CSE), to @file{@var{file}.10.cse2}.
 @item w
-Dump after the second flow pass, to @file{@var{file}.20.flow2}.
+Dump after the second flow pass, to @file{@var{file}.21.flow2}.
 @item X
 Dump after dead code elimination, to @file{@var{file}.06.dce}.
 @item z
@@ -2556,14 +2578,15 @@ perform loop unrolling or function inlining when you specify @samp{-O2}.
 As compared to @samp{-O}, this option increases both compilation time
 and the performance of the generated code.
 
-@samp{-O2} turns on all optional optimizations except for loop unrolling
-and function inlining.  It also turns on the @samp{-fforce-mem} option
-on all machines and frame pointer elimination on machines where doing so
-does not interfere with debugging.
+@samp{-O2} turns on all optional optimizations except for loop unrolling,
+function inlining, and register renaming.  It also turns on the
+@samp{-fforce-mem} option on all machines and frame pointer elimination
+on machines where doing so does not interfere with debugging.
 
 @item -O3
 Optimize yet more.  @samp{-O3} turns on all optimizations specified by
-@samp{-O2} and also turns on the @samp{inline-functions} option.
+@samp{-O2} and also turns on the @samp{-finline-functions} and
+@samp{-frename-registers} options.
 
 @item -O0
 Do not optimize.
@@ -2650,6 +2673,10 @@ Usage, gcc.info, Using and Porting GCC}.@refill
 @item -foptimize-sibling-calls
 Optimize sibling and tail recursive calls.
 
+@item -ftrapv
+This option generates traps for signed overflow on addition, subtraction,
+multiplication operations.
+
 @item -fno-inline
 Don't pay attention to the @code{inline} keyword.  Normally this option
 is used to keep the compiler from expanding any functions inline.
@@ -2780,7 +2807,6 @@ halting the program may not work properly with this option.  Use
 -fno-delete-null-pointer-checks to disable this optimizing for programs
 which depend on that behavior.
 
-
 @item -fexpensive-optimizations
 Perform a number of minor optimizations that are relatively expensive.
 
@@ -3008,6 +3034,12 @@ Perform dead-code elimination in SSA form.  Requires @samp{-fssa}.  Like
 Treat floating point constant as single precision constant instead of
 implicitly converting it to double precision constant.
 
+@item -frename-registers
+Attempt to avoid false dependancies in scheduled code by making use
+of registers left over after register allocation.  This optimization
+will most benefit processors with lots of registers.  It can, however,
+make debugging impossible, since variables will no longer stay in
+a ``home register''.
 @end table
 
 @node Preprocessor Options
@@ -3918,14 +3950,20 @@ that you originally invoked continues to run and invoke the other
 executables (preprocessor, compiler per se, assembler and linker)
 that do the real work.  However, since no real work is done in the
 driver program, it usually does not matter that the driver program
-in use is not the one for the specified target and version.
+in use is not the one for the specified target.  It is common for the
+interface to the other executables to change incompatibly between
+compiler versions, so unless the version specified is very close to that
+of the driver (for example, @samp{-V 3.0} with a driver program from GCC
+version 3.0.1), use of @samp{-V} may not work; for example, using
+@samp{-V 2.95.2} will not work with a driver program from GCC 3.0.
 
 The only way that the driver program depends on the target machine is
 in the parsing and handling of special machine-specific options.
 However, this is controlled by a file which is found, along with the
 other executables, in the directory for the specified version and
 target machine.  As a result, a single installed driver program adapts
-to any specified target machine and compiler version.
+to any specified target machine, and sufficiently similar compiler
+versions.
 
 The driver program executable does control one significant thing,
 however: the default version and target machine.  Therefore, you can
@@ -6106,6 +6144,9 @@ specifying @samp{-march=@var{cpu type}} implies @samp{-mcpu=@var{cpu type}}.
 Synonyms for -mcpu=i386, -mcpu=i486, -mcpu=pentium, and -mcpu=pentiumpro
 respectively.  These synonyms are deprecated.
 
+@item -mintel-syntax
+Emit assembly using Intel syntax opcodes instead of AT&T syntax.
+
 @item -mieee-fp
 @itemx -mno-ieee-fp
 Control whether or not the compiler uses IEEE floating point