📄 gcc.1
字号:
I am interested in hearing about the difference this makes..TP.B \-fforce-memForce memory operands to be copied into registers before doingarithmetic on them.This may produce better code by making all memory referencespotential common subexpressions.When they are not common subexpressions, instruction combination shouldeliminate the separate register-load.I am interested in hearing about the difference this makes..TP.B \-fforce-addrForce memory address constants to be copied into registers beforedoing arithmetic on them.This may produce better code just as.B \-fforce-memmay.I am interested in hearing about the difference this makes..TP.B \-fomit-frame-pointerDon't keep the frame pointer in a register for functions thatdon't need one.This avoids the instructions to save, set up and restore frame pointers;it also makes an extra register available in many functions..B "It also makes debugging impossible.".spOn some machines, such as the Vax, this flag has no effect, becausethe standard calling sequence automatically handles the frame pointerand nothing is saved by pretending it doesn't exist.The machine-description macro.B FRAME_POINTER_REQUIREDcontrols whether a target machine supports this flag..TP.B \-finline-functionsIntegrate all simple functions into their callers.The compiler heuristically decides which functions are simpleenough to be worth integrating in this way..spIf all calls to a given function are integrated, and the function is declared.BR static ,then the function is normally not output as assembler code in its own right..TP.B \-fcaller-savesEnable values to be allocated in registers that will be clobbered byfunction calls, by emitting extra instructions to save and restore theregisters around such calls.Such allocation is done only when it seems to result in better code thanwould otherwise be produced..spThis option is enabled by default on certain machines, usually thosewhich have no call-preserved registers to use instead..TP.B \-fkeep-inline-functionsEven if all calls to a given function are integrated, and the function isdeclared.BR static ,nevertheless output a separate run-time callable version of the function..TP.B \-fwritable-stringsStore string constants in the writable data segment and don't uniquize them.This is for compatibility with old programs which assume they can writeinto string constants.Writing into string constants is a very bad idea;constants should be constant..TP.B \-fcond-mismatchAllow conditional expressions with mismatched types in the second andthird arguments.The value of such an expression is void..TP.B \-fno-function-cseDo not put function addresses in registers; make each instruction thatcalls a constant function contain the function's address explicitly..spThis option results in less efficient code, but some strange hacks thatalter the assembler output may be confused by the optimizations performedwhen this option is not used..TP.B \-fvolatileConsider all memory references through pointers to be volatile..TP.B \-fshared-dataRequests that the data and.RB non- constvariables of this compilation be shared data rather than private data.The distinction makes sense only on certain operating systems, whereshared data is shared between processes running the same program, whileprivate data exists in one copy per process..TP.B \-funsigned-charLet the type.B charbe the unsigned, like.BR "unsigned char" ..spEach kind of machine has a default for what.B charshould be.It is either like.B "unsigned char"by default or like.B "signed char"by default.(Actually, at present, the default is always signed.).spThe type.B charis always a distinct type from either.B "signed char"or.BR "unsigned char" ,even though its behavior is always just like one of those two..spNote that this is equivalent to.BR \-fno-signed-char ,which is the negative form of.BR \-fsigned-char ..TP.B \-fsigned-charLet the type.B charbe signed, like.BR "signed char" ..spNote that this is equivalent to.BR \-fno-unsigned-char ,which is the negative form of.BR \-funsigned-char ..TP.B \-fdelayed-branchIf supported for the target machine, attempt to reorder instructions toexploit instruction slots available after delayed branch instructions..TP.BI \-ffixed- regTreat the register named.I regas a fixed register; generated code should never refer to it(except perhaps as a stack pointer, frame pointer or in some other fixed role)..sp.I regmust be the name of a register.The register names accepted are machine-specific and are defined in the.B REGISTER_NAMESmacro in the machine description macro file..spThis flag does not have a negative form, because it specifies athree-way choice..TP.BI \-fcall-used- regTreat the register named.I regas an allocatable register that is clobbered by function calls.It may be allocated for temporaries or variables that do not liveacross a call.Functions compiled this way will not save and restore the register REG..spUse of this flag for a register that has a fixed pervasive rolein the machine's execution model, such as the stack pointer orframe pointer, will produce disastrous results..spThis flag does not have a negative form, because it specifies athree-way choice..TP.BI \-fcall-saved- regTreat the register named.I regas an allocatable register saved by functions.It may be allocated even for temporaries or variables that live across a call.Functions compiled this way will save and restore the register.I regif they use it..spUse of this flag for a register that has a fixed pervasive rolein the machine's execution model, such as the stack pointer orframe pointer, will produce disastrous results..spA different sort of disaster will result from the use of thisflag for a register in which function values may be returned..spThis flag does not have a negative form, because it specifies athree-way choice..TP.BI \-d lettersSays to make debugging dumps at times specified by.IR letters .Here are the possible letters:.sp.B r.in +.5iDump after RTL generation..in -.5i.B j.in +.5iDump after first jump optimization..in -.5i.B J.in +.5iDump after last jump optimization..in -.5i.B s.in +.5iDump after CSE (including the jump optimization that sometimes follows CSE)..in -.5i.B L.in +.5iDump after loop optimization..in -.5i.B f.in +.5iDump after flow analysis..in -.5i.B c.in +.5iDump after instruction combination..in -.5i.B l.in +.5iDump after local register allocation..in -.5i.B g.in +.5iDump after global register allocation..in -.5i.B d.in +.5iDump after delayed branch scheduling..in -.5i.B m.in +.5iPrint statistics on memory usage, at the end of the run..in -.5i.TP.B \-pedanticIssue all the warnings demanded by strict ANSI standard C; rejectall programs that use forbidden extensions..spValid ANSI standard C programs should compile properly with or withoutthis option (though a rare few will require.BR \-ansi ).However, without this option, certain GNU extensions and traditional Cfeatures are supported as well.With this option, they are rejected.There is no reason to use this option; it exists only to satisfy pedants..sp.B \-pedanticdoes not cause warning messages for use of the alternate keywords whosenames begin and end with.BR __ ..TP.B \-staticOn Suns running version 4, this prevents linking with the sharedlibraries..RB ( \-ghas the same effect.).PThese options control the C preprocessor, which is run on each C sourcefile before actual compilation. If you use the `-E' option, nothingis done except C preprocessing. Some of these options make sense onlytogether with `-E' because they request preprocessor output that isnot suitable for actual compilation..TP.B \-CTell the preprocessor not to discard comments.Used with the.B \-Eoption..TP.BI \-I dirSearch directory.I dirfor include files..TP.B \-I-Any directories specified with.B \-Ioptions before the.B \-I-option are searched only for the case of.B #include\fB"\fIfile\fB"\fR; they are not searched for.BR "#include <\fIfile\fB>" ..spIf additional directories are specified with.B \-Ioptions after the.BR \-I- ,these directories are searched for all.B #includedirectives.(Ordinarily.I all.B \-Idirectories are used this way.).spIn addition, the.B \-I-option inhibits the use of the current directory as the firstsearch directory for.B #include\fB"\fIfile\fB"\fR.Therefore, the current directory is searched only if it is requestedexplicitly with.BR \-I. .Specifying both.B \-I-and.B -I.allows you to control precisely which directories are searched beforethe current one and which are searched after..TP.B \-nostdincDo not search the standard system directories for header files.Only the directories you have specified with.B \-Ioptions (and the current directory, if appropriate) are searched..spBetween.B \-nostdincand.BR \-I- ,you can eliminate all directories from the search pathexcept those you specify..TP.B \-MTell the preprocessor to output a rule suitable for.BI make (1)describing the dependencies of each source file.For each source file, the preprocessor outputs one.BR make -rulewhose target is the object file name for that source file and whosedependencies are all the files.BR #include din it.This rule may be a single line or may be continued with.B \\\\-newlineif it is long..sp.B \-Mimplies.BR \-E ..TP.B \-MMLike.B \-Mbut the output mentions only the user-header files included with.B #include\fB"\fIfile\fB"\fR.System header files included with.B "#include <\fIfile\fB>"are omitted..sp.B \-MMimplies.BR \-E ..TP.BI \-D macroDefine macro.I macrowith the empty string as its definition..TP.BI \-D macro\fR=\fIdefnDefine macro.I macroas.IR defn ..TP.BI \-U macroUndefine macro.IR macro ..TP.B \-trigraphsSupport ANSI C trigraphs.You don't want to know about this brain-damage.The.B \-ansioption also has this effect..SH FILES.ta \w'LIBDIR/gcc-include 'ufile.c C source file.brfile.s assembly language file.brfile.o object file.bra.out link edited output.br/tmp/cc\(** temporary files.br\fILIBDIR\fR/gcc-cpp preprocessor.br\fILIBDIR\fR/gcc-cc1 compiler.br\fILIBDIR\fR/gcc-gnulib library needed by GCC on some machines.br/lib/crt[01n].o start-up routine.br/lib/libc.a standard C library, see.IR intro (3).br/usr/include standard directory for .B #includefiles.br\fILIBDIR\fR/gcc-include standard gcc directory for.B #includefiles.sp.I LIBDIRis usually.BR /usr/local/lib ..SH "SEE ALSO"as(1), ld(1), adb(1), dbx(1), sdb(1)..SH BUGSBugs should be reported to.BR bug-gcc@prep.ai.mit.edu .Bugs tend actually to be fixed if they can be isolated, so it is in yourinterest to report them in such a way that they can be easily reproduced..SH COPYINGCopyright (c) 1988 Free Software Foundation, Inc..PPermission is granted to make and distribute verbatim copies ofthis manual provided the copyright notice and this permission noticeare preserved on all copies..PPermission is granted to copy and distribute modified versions of thismanual under the conditions for verbatim copying, provided that theentire resulting derived work is distributed under the terms of apermission notice identical to this one..PPermission is granted to copy and distribute translations of thismanual into another language, under the above conditions for modifiedversions, except that this permission notice may be included intranslations approved by the Free Software Foundation instead of inthe original English..SH AUTHORSSee the GNU CC Manual for the contributors to GNU CC.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -