Annotation of researchv10dc/cmd/gcc/gcc.1, revision 1.1.1.1

1.1       root        1: bg
                      2: .\     " ======================
                      3: .\     " This version is 1.22
                      4: .\     " ======================
                      5: .TH GCC 1 "17 May 1988" "Version 1.22"
                      6: .SH NAME
                      7: gcc \- GNU project C Compiler
                      8: .SH SYNOPSIS
                      9: .B gcc
                     10: [ option ] ... file ...
                     11: .SH DESCRIPTION
                     12: The
                     13: .I GNU\ C\ compiler
                     14: uses a command syntax much like the Unix C compiler. The 
                     15: .I gcc
                     16: program accepts options and file names as operands. Multiple
                     17: single-letter options may
                     18: .I not
                     19: be grouped: `\fB\-dr\fR'
                     20: is very different from `\fB\-d\ \-r\fR'.
                     21: When you invoke
                     22: .I GNU\ CC
                     23: \, it normally does preprocessing, compilation,
                     24: assembly and linking. File names which end in `\fB.c\fR'
                     25: are taken as C
                     26: source to be preprocessed and compiled; compiler output files plus any
                     27: input files with names ending in `\fB.s\fR'
                     28: are assembled; then the
                     29: resulting object files, plus any other input files, are linked together to
                     30: produce an executable.
                     31: Command options allow you to stop this process at an intermediate stage.
                     32: For example, the `\fB\-c\fR'
                     33: option says not to run the linker.
                     34: Then the output consists of object files output by the assembler.
                     35: Other command options are passed on to one stage.
                     36: Some options control the preprocessor and others the compiler itself.
                     37: .SH OPTIONS
                     38: Here are the options to control the overall compilation process,
                     39: including those that say whether to link, whether to assemble, and so on.
                     40: .TP
                     41: .BI \-o "\ \ file"
                     42: Place linker output in file \fIfile\fR.
                     43: This applies regardless to whatever sort of output is being produced,
                     44: whether it be an executable file, an object file, an assembler file or
                     45: preprocessed C code.
                     46: If `\fB\-o\fR'
                     47: is not specified, the default is to put an executable file
                     48: in `a.out', the object file `\fIsource\fB.c\fR' in `\fIsource\fB.o\fR',
                     49: an assembler file in `\fIsource\fB.s\fR',
                     50: and preprocessed C on standard output.
                     51: .TP
                     52: .B \-c
                     53: Compile or assemble the source files, but do not link.
                     54: Produce object files with names made by replacing `\fB\.c\fR'
                     55: or `\fB\.s\fR'
                     56: with `\fB\.o\fR'
                     57: at the end of the input file names.
                     58: Do nothing at all for object files specified as input.
                     59: .TP
                     60: .B \-S
                     61: Compile into assembler code but do not assemble.
                     62: The assembler output file name is made by replacing `\fB\.c\fR'
                     63: with `\fB\.s\fR'
                     64: at the end of the input file name.
                     65: Do nothing at all for assembler source files or object files specified
                     66: as input.
                     67: .TP
                     68: .B \-E
                     69: Run only the C preprocessor.
                     70: Preprocess all the C source files specified
                     71: and output the results to standard output.
                     72: .TP
                     73: .B \-v
                     74: Compiler driver program prints the commands it executes as it runs
                     75: the preprocessor, compiler proper, assembler and linker.
                     76: Some of these are directed to print their own version numbers.
                     77: .TP
                     78: .BI \-B "prefix"
                     79: Compiler driver program tries \fIprefix\fR as a prefix for each program
                     80: it tries to run. These programs are `\fBcpp\fR', `\fBcc1\fR',
                     81: `\fBas\fR' and `\fBld\fR'.
                     82: For each subprogram to be run, the compiler driver first tries
                     83: the `\fB\-B\fR' prefix, if any.
                     84: If that name is not found, or if `\fB\-B\fR' was not specified,
                     85: the driver tries two standard prefixes,
                     86: which are `\fB/usr/lib/gcc-\fR' and `\fB/usr/local/lib/gcc-\fR'.
                     87: If neither of those results in a file name that is found,
                     88: the unmodified program name is searched for using the directories
                     89: specified in your `\fBPATH\fR' environment variable.
                     90: The run-time support file `\fBgnulib\fR' is also searched for using
                     91: the `\fB\-B\fR' prefix, if needed.
                     92: If it is not found there, the two standard prefixes above are tried,
                     93: and that is all. 
                     94: The file is left out of the link if it is not found by those means.
                     95: Most of the time, on most machines, you can do without it.
                     96: .PP
                     97: These options control the C preprocessor,
                     98: which is run on each C source file before actual compilation.
                     99: If you use the `\fB\-E\fR' option, nothing is done except C preprocessing.
                    100: Some of these options make sense only together with `\fB\-E\fR'
                    101: because they request preprocessor output that is not suitable
                    102: for actual compilation.
                    103: .TP
                    104: .B \-C
                    105: Tell the preprocessor not to discard comments. Used with the `\fB\-E\fR'
                    106: option.
                    107: .TP
                    108: .BI \-I "dir"
                    109: Search directory 
                    110: .I dir
                    111: for include files.
                    112: .TP
                    113: .B \-I\-
                    114: Any directories specified with `\fB\-I\fR' options before the `\fB\-I\-\fR'
                    115: option are searched only for the case of `\fB#include "\fIfile\fB"\fR';
                    116: they are not searched for `\fB#include <\fIfile\fB>\fR'.
                    117: If additional directories are specified with `\fB\-I\fR' options after
                    118: the `\fB\-I\-\fR', these directories are searched for all '\fB#include\fR'
                    119: directives. (Ordinally \fIall\fR '\fB\-I\fR' directories are used this
                    120: way.)
                    121: In addition, the `\fB\-I\-\fR' option inhibits the use of the current
                    122: directory as the first search directory for `\fB#include "\fIfile\fB"\fR'.
                    123: Therefore, the current directory is searched only if it is requested
                    124: explicitly with `\fB\-I.\fR'.
                    125: Specifying both `\fB\-I\-\fR' and `\fB\-I.\fR' allows you to control precisely
                    126: which directories are searched before the current one and which are
                    127: searched after.
                    128: .TP
                    129: .B \-nostdinc
                    130: Do not search the standard system directories for header files.
                    131: Only the directories you have specified with `\fB\-I\fR' options
                    132: (and the current directory, if appropriate) are searched.
                    133: Between `\fB\-nostdinc\fR' and `\fB\-I-\fR', you can eliminate all
                    134: directories from the search path except those you specify.
                    135: .TP
                    136: .B \-M
                    137: Tell the preprocessor to output a rule suitable for \fBmake\fR
                    138: describing the dependencies of each source file.
                    139: For each source file, the preprocessor outputs one \fBmake\fR-rule
                    140: whose target is the object file name for that source file and
                    141: whose dependencies are all the files `\fB#include\fR'd in it.
                    142: This rule may be a single line or may be continued `\fB\\\fR'-newline
                    143: if it is long.`\fB\-M\fR' implies `\fB\-E\fR'.
                    144: .TP
                    145: .B \-MM
                    146: Like `\fB\-M\fR' but the output mentions only the user-header files included
                    147: with `\fB#include "\fIfile\fB"\fR'.
                    148: System header files included with `\fB#include <\fIfile\fB>\fR'
                    149: are omitted.`\fB\-MM\fR' implies `\fB\-E\fR'.
                    150: .TP
                    151: .BI \-D "macro"
                    152: Define macro \fImacro\fR
                    153: with the empty string as its definition.
                    154: .TP
                    155: .B \-D\fImacro=defn\fR
                    156: Define macro \fImacro\fR as \fIdefn\fR.
                    157: .TP
                    158: .BI \-U "macro"
                    159: Undefine macro \fImacro\fR.
                    160: .TP
                    161: .B \-T
                    162: Support ANSI C trigraphs.
                    163: You don't want to know about this brain-damage.
                    164: The `\fB\-ansi\fR' option also has this effect.
                    165: .PP
                    166: These options control the details of C compilation itself.
                    167: .TP
                    168: .B \-ansi
                    169: Support all ANSI standard C programs.
                    170: This turns off certain features of GNU C that are incompatible with
                    171: ANSI C, such as the \fBasm\fR, \fBinline\fR and \fBtypeof\fR keywords, and
                    172: predefined macros such as \fBunix\fR and \fBvax\fR that identify
                    173: the type of system you are using.
                    174: It also enables the undesirable and rarely used ANSI trigraph feature.
                    175: The `\fB\-ansi\fR' option does not cause non-ANSI programs to be rejected
                    176: gratuitously.
                    177: For that, `\fB\-pedantic\fR' is required in addition to `\fB\-ansi\fR'.
                    178: The macro \fB__STRICT_ANSI__\fR
                    179: is predefined when the `-ansi' option is used.
                    180: Some header files may notice this macro and refrain from declaring
                    181: certain functions or defining certain macros that the ANSI standard
                    182: doesn't call for; this is to avoid interfering with any programs
                    183: that might use these names for other things.
                    184: .TP
                    185: .B \-traditional
                    186: Attempt to support some aspects of traditional C compilers.
                    187: Specifically:
                    188: .br
                    189: \(** All \fBextern\fR declarations take effect globally even if 
                    190: they are written inside of a function definition.
                    191: This includes implicit declarations of functions.
                    192: .br    
                    193: \(** The keywords \fBtypeof\fR, \fBinline\fR, \fBsigned\fR, \fBconst\fR
                    194: and \fBvolatile\fR are not recognized.
                    195: .br    
                    196: \(** Comparisons between pointers and integers are always allowed.
                    197: .br
                    198: \(** Integer types \fBunsigned short\fR and \fBunsigned char\fR
                    199: promote to \fBunsigned int\fR.
                    200: .br
                    201: \(** In the preprocessor, comments convert to nothing at all,
                    202: rather than to a space.
                    203: This allows traditional token concatenation.
                    204: .br
                    205: \(** In the preprocessor, single and double quote characters are
                    206: ignored when scanning macro definitions, so that macro arguments
                    207: can be replaced even within a string or character constant.
                    208: Quote characters are also ignored when skipping text inside
                    209: a failing conditional directive.
                    210: .TP
                    211: .B \-pedantic
                    212: Issue all the warnings demanded by strict ANSI standard C;
                    213: reject all programs that use forbidden extensions.
                    214: Valid ANSI standard C programs should compile properly with or
                    215: without this option (though a rare few will require `\fB\-ansi\fR'.
                    216: However, without this option, certain GNU extensions and
                    217: traditional C features are supported as well.
                    218: With this option, they are rejected.
                    219: There is no reason to \fIuse\fR
                    220: this option; it exists only to satisfy pedants.
                    221: .TP
                    222: .B \-O
                    223: Optimize.  Optimizing compilation takes somewhat more time, and a lot
                    224: more memory for a large function.
                    225: Without `\fB\-O\fR', the compiler's goal is to reduce the cost of
                    226: compilation and to make debugging produce the expected results.
                    227: Statements are independent: if you stop the program with a breakpoint
                    228: between statements, you can then assign a new value to any variable or
                    229: change the program counter to any other statement in the function and
                    230: get exactly the results you would expect from the source code.
                    231: Without `\fB\-O\fR', only variables declared \fBregister\fR
                    232: are allocated in registers.
                    233: The resulting compiled code is
                    234: a little worse than produced by PCC without `\fB\-O\fR'.
                    235: With `\fB\-O\fR', the compiler tries to reduce code size and execution time.
                    236: Some of the `\fB\-f\fR' options described below turn specific
                    237: kinds of optimization on or off.
                    238: .TP
                    239: .B \-g
                    240: Produce debugging information in DBX format.
                    241: Unlike most other C compilers,
                    242: GNU CC allows you to use `\fB\-g\fR' with `\fB\-O\fR'.
                    243: The shortcuts taken by optimized code may occasionally
                    244: produce surprising results: some variables you declared may not exist
                    245: at all; flow of control may briefly move where you did not expect it;
                    246: some statements may not be executed because they compute constant
                    247: results or their values were already at hand; some statements may
                    248: execute in different places because they were moved out of loops.
                    249: Nevertheless it proves possible to debug optimized output.
                    250: This makes it reasonable to use the optimizer for programs that might
                    251: have bugs.
                    252: .TP
                    253: .B \-gg
                    254: Produce debugging information in GDB(GNU Debugger)'s own format.
                    255: This requires the GNU assembler and linker
                    256: in order to work.
                    257: .TP
                    258: .B \-w
                    259: Inhibit all warning messages.
                    260: .TP
                    261: .B \-W
                    262: Print extra warning messages for these events:
                    263: .br
                    264: \(** An automatic variable is used without first being initialized.
                    265: These warnings are possible only in optimizing compilation, because 
                    266: they require data flow information that is computed only when
                    267: optimizing. 
                    268: They occur only for variables that are candidates for register
                    269: allocation. Therefore, they do not occur for a variable that is
                    270: declared
                    271: .B volatile,
                    272: or whose address is taken, or whose size is other than 
                    273: 1,2,4 or 8 bytes. Also, they do not occur for structures,
                    274: unions or arrays, even when they are in registers.
                    275: Note that there may be no warning about a variable that is used
                    276: only to compute a value that itself is never used, because such
                    277: computations may be deleted by the flow analysis pass before the
                    278: warnings are printed.
                    279: These warnings are made optional because GNU CC is not smart
                    280: enough to see all the reasons why the code might be correct
                    281: despite appearing to have an error.
                    282: .br
                    283: \(** A nonvolantile automatic variable might be changed
                    284: by a call to \fBlongjmp\fR.
                    285: These warnings as well are possible only in optimizing compilation.
                    286: The compiler sees only the calls to \fBsetjmp\fR.
                    287: It cannot know where \fBlongjmp\fR
                    288: will be called; in fact, a signal handler could call it at any point
                    289: in the code. As a result, you may get a warning even when there is
                    290: in fact no problem because \fBlongjmp\fR
                    291: cannot in fact be called at the place which would cause a problem.
                    292: .br
                    293: \(** A function can return either with or without a value.
                    294: (Falling off the end of the function body is considered returning
                    295: without a value.)
                    296: Spurious warning can occur because GNU CC does not realize that
                    297: certain functions (including \fBabort\fR
                    298: and \fBlongjmp\fR) will never return.
                    299: .TP
                    300: .B \-Wimplicit
                    301: Warn whenever a function is implicitly declared.
                    302: .TP
                    303: .B \-Wreturn-type
                    304: Warn whenever a function is defined with a return-type that
                    305: defaults to \fBint\fR. Also warn about any \fBreturn\fR
                    306: statement with no return-value in a function whose return-type
                    307: is not \fBvoid\fR.
                    308: .TP
                    309: .B \-Wcomment
                    310: Warn whenever a comment-start sequence `/*' appears in a comment.
                    311: .TP
                    312: .B \-p
                    313: Generate extra code to write profile information suitable for the
                    314: analysis program \fBprof\fR.
                    315: .TP
                    316: .B \-pg
                    317: Generate extra code to write profile information suitable for the
                    318: analysis program \fBgprof\fR.
                    319: .TP
                    320: .BI \-l "library"
                    321: Search a standard list of directories for a library named \fIlibrary\fR,
                    322: which is actually a file named `\fBlib\fIlibrary\fB.a\fR'.
                    323: The linker uses this file as if it had been specified precisely by name.
                    324: The directories searched include several standard system directories
                    325: plus any that you specify with `\fB\-L\fR'.
                    326: Normally the files found this way are library files - archive files whose
                    327: members are object files. The linker handles an archive file by through
                    328: it for members which define symbols that have so far been referenced
                    329: but not defined. But if the file that is found is an ordinary
                    330: object file, it is linked in the usual fashion. 
                    331: The only difference between an `\fB\-l\fR' option and the full file name of
                    332: the file that is found is syntactic and the fact that several directories
                    333: are searched.
                    334: .TP
                    335: .BI \-L "dir"
                    336: Add directory \fIdir\fR to the list of directories to be searched
                    337: for `\fB\-l\fR'.
                    338: .TP
                    339: .B \-nostdlib
                    340: Don't use the standard system libraries and startup files when
                    341: linking. Only the files you specify (plus `\fBgnulib\fR')
                    342: will be passed to the linker.
                    343: .TP
                    344: .BI \-m "machinespec"
                    345: Machine-dependent option specifying something about the type of target machine.
                    346: These options are defined by the macro \fBTARGET_SWITCHES\fR
                    347: in the machine description. The default for the options is also
                    348: defined by that macro, which enables you to change the defaults.
                    349: .IP
                    350: These are the `\fB\-m\fR' options defined in the 68000 machine description:
                    351: .TP 10
                    352: .B \ \ \ \ \ \ \ \ \-m68020
                    353: Generate output for a 68020 (rather than a 68000).
                    354: This is the default if you use the unmodified sources.
                    355: .TP 10
                    356: .B \ \ \ \ \ \ \ \ \-m68000
                    357: Generate output for a 68000 (rather than a 68020).
                    358: .TP 10
                    359: .B \ \ \ \ \ \ \ \ \-m68881
                    360: Generate output containing 68881 instructions for floating point.
                    361: This is the default if you use the unmodified sources.
                    362: .TP 10
                    363: .B \ \ \ \ \ \ \ \ \-msoft-float
                    364: Generate output containing library calls for floating point.
                    365: .TP 10
                    366: .B \ \ \ \ \ \ \ \ \-mshort
                    367: Consider type \fBint\fR to be 16 bits wide, like \fBshort int\fR.
                    368: .TP 10
                    369: .B \ \ \ \ \ \ \ \ \-mnobitfield
                    370: Do not use the bit-field instructions. 
                    371: .B '\-m68000'
                    372: implies
                    373: .B '\-mnobitfield'.
                    374: .TP 10
                    375: .B \ \ \ \ \ \ \ \ \-mbitfield
                    376: Do use the bit-field instructions. 
                    377: .B '\-m68020'
                    378: implies
                    379: .B '\-mbitfield'.
                    380: This is the default if you use the unmodified sources.
                    381: .TP 10
                    382: .B \ \ \ \ \ \ \ \ \-mrtd
                    383: Use a different function-calling convention, in which functions that
                    384: take a fixed number of arguments return with the \fBrtd\fR
                    385: instruction, which pops their arguments while returning.  This saves
                    386: one instruction in the caller since there is no need to pop the
                    387: arguments there.
                    388: This calling convention is incompatible with the one normally used on
                    389: Unix, so you cannot use it if you need to call libraries compiled with
                    390: the Unix compiler.
                    391: Also, you must provide function prototypes for all functions that take
                    392: variable numbers of arguments (including \fBprintf\fR); otherwise
                    393: incorrect code will be generated for calls to those functions.
                    394: In addition, seriously incorrect code will result if you call a
                    395: function with too many arguments.  (Normally, extra arguments are
                    396: harmlessly ignored.)
                    397: The \fBrtd\fR
                    398: instruction is supported by the 68010 and 68020
                    399: processors, but not by the 68000.
                    400: .IP
                    401: These are the `\fB\-m\fR' options defined in the VAX machine description:
                    402: .TP 10
                    403: .B \ \ \ \ \ \ \ \ \-munix
                    404: Do not output certain jump instructions (
                    405: .B aobleq
                    406: and so on) that the Unix assembler
                    407: for the VAX cannot handle across long ranges. 
                    408: .TP 10
                    409: .B \ \ \ \ \ \ \ \ \-mgnu
                    410: Do output those jump instructions, on the assumption
                    411: that you will assemble with the GNU assembler.
                    412: .TP 5
                    413: .BI \-f "flag"
                    414: Specify machine-independent flags. These are the flags:
                    415: .TP 10
                    416: .B \ \ \ \ \ \ \ \ \-ffloat-store
                    417: Do not store floating-point variables in registers.
                    418: This prevents undesirable excess precision on machines such as the 68000
                    419: where the floating registers (of the 68881) keep more precision
                    420: than a \fBdouble\fR is supposed to have.
                    421: For most programs, the excess precision does only good, but a few
                    422: programs rely on the precise definition of IEEE floating point.
                    423: Use `
                    424: .B \-ffloat-store'
                    425: for such programs.
                    426: .TP 10
                    427: .B \ \ \ \ \ \ \ \ \-frno-asm
                    428: Do not recognize \fBasm\fR, \fBinline\fR or \fBtypeof\fR
                    429: as a keyword. These words may then be used as identifiers.
                    430: .TP 10
                    431: .B \ \ \ \ \ \ \ \ \-fno-defer-pop
                    432: Always pop the arguments to each function call as soon as that
                    433: function returns.
                    434: Normally the compiler (when optimizing) lets arguments accumulate on the
                    435: stack for several function calls and pops them all at once.
                    436: .TP 10
                    437: .B \ \ \ \ \ \ \ \ \-fcombine-regs
                    438: Allow the combine pass to combine an instruction that copies one
                    439: register into another.
                    440: This might or might not produce better code when used in addition to `
                    441: .B \-O'.
                    442: .TP 10
                    443: .B \ \ \ \ \ \ \ \ \-fforce-mem
                    444: Force memory operands to be copied into registers before doing
                    445: arithmetic on them.
                    446: This may produce better code by making all
                    447: memory references potential common subexpressions.
                    448: When they are not common subexpressions,
                    449: instruction combination should eliminate the separate register-load.
                    450: .TP 10
                    451: .B \ \ \ \ \ \ \ \ \-fforce-addr
                    452: Force memory address constants to be copied into registers before
                    453: doing arithmetic on them.
                    454: This may produce better code just as `
                    455: .B \-fforce-mem'
                    456: may.
                    457: .TP 10
                    458: .B \ \ \ \ \ \ \ \ \-fomit-frame-pointer
                    459: Don't keep the frame pointer in a register for functions that don't
                    460: need one.  This avoids the instructions to save, set up and restore
                    461: frame pointers; it also makes an extra register available in many
                    462: functions. \fBIt\ also\ makes\ debugging\ impossible.\fR
                    463: On some machines, such as the VAX, this flag has no effect,
                    464: because the standard calling sequence automatically handles
                    465: the frame pointer and nothing is saved by pretending it doesn't exist.
                    466: The machine-description macro \fBFRAME_POINTER_REQUIRED\fR
                    467: controls whether a target machine supports this flag.
                    468: .TP 10
                    469: .B \ \ \ \ \ \ \ \ \-finline-functions
                    470: Integrate all simple functions into their callers.
                    471: The compiler heuristically decides which functions are simple enough
                    472: to be worth integrating in this way.
                    473: If all calls to a given function are integrated, and the function
                    474: is declared \fBstatic\fR,
                    475: then the function is normally not output as assembler code in its
                    476: own right.
                    477: .TP 10
                    478: .B \ \ \ \ \ \ \ \ \-fkeep-inline-functions
                    479: Even if all calls to a given function are integrated, and the
                    480: function is declared \fBstatic\fR,
                    481: nevertheless output a separate run-time callable version of
                    482: the function.
                    483: .TP 10
                    484: .B \ \ \ \ \ \ \ \ \-fwritable-strings
                    485: Store string constants in the writable data segment and don't uniquize them.
                    486: This is for compatibility with old programs which assume
                    487: they can write into string constants.  Writing into string constants
                    488: is a very bad idea; ``constants'' should be constant.
                    489: .TP 10
                    490: .B \ \ \ \ \ \ \ \ \-fno-function-cse
                    491: Do not put function addresses in registers; make each instruction that
                    492: calls a constant function contain the function's address explicitly.
                    493: This option results in less efficient code, but some strange hacks
                    494: that alter the assembler output may be confused by the optimizations
                    495: performed when this option is not used.
                    496: .TP 10
                    497: .B \ \ \ \ \ \ \ \ \-fvolatile
                    498: Consider all memory references through pointers to be volatile.
                    499: .TP 10
                    500: .B \ \ \ \ \ \ \ \ \-funsigned-char
                    501: Let the type \fBchar\f be the unsigned, like \fBunsigned char\fR.
                    502: Each kind of machine has a default for what \fBchar\fR
                    503: should be. It is either like \fBunsigned char\fR
                    504: by default of like \fBsigned char\fR
                    505: by default. (Actually, at present, the default is always signed.)
                    506: The type \fBchar\fR
                    507: is always a distinct type from either \fBsigned char\fR
                    508: or \fBunsigned char\fR,
                    509: even though its behavior is always just like one of those two.
                    510: .TP 10
                    511: .B \ \ \ \ \ \ \ \ \-fsigned-char
                    512: Let the type \fBchar\fR be the same as \fBsigned char\fR.
                    513: .TP 10
                    514: .B \ \ \ \ \ \ \ \ \-ffixed-\fIreg\fR
                    515: Treat the register named \fIreg\fR as a fixed register; generated
                    516: code should never refer to it (except perhaps as a stack pointer,
                    517: frame pointer or in some other fixed role). \fIreg\fR
                    518: must be the name of a register.
                    519: The register names accepted are machine-specific and are defined in
                    520: the \fBREGISTER_NAMES\fR
                    521: macro in the machine description macro file.
                    522: .TP 10
                    523: .B \ \ \ \ \ \ \ \ \-fcall-used-\fIreg\fR
                    524: Treat the register named \fIreg\fR
                    525: as an allocatable register that is clobberred by function calls.
                    526: It may be allocated for temporaries or variables
                    527: that do not live across a call.
                    528: Functions compiled this way will not save and restore the
                    529: register \fIreg\fR.
                    530: Use of this flag for a register that has a fixed pervasive role
                    531: in the machine's execution model, such as the stack pointer or
                    532: frame pointer, will produce disastrous results.
                    533: .TP 10
                    534: .B \ \ \ \ \ \ \ \ \-fcall-saved-\fIreg\fR
                    535: Treat the register named \fIreg\fR
                    536: as an allocatable register saved by functions.
                    537: It may be allocated even for temporaries or
                    538: variables that live across a call.  Functions compiled this way
                    539: will save and restore the register \fIreg\fR if they use it.
                    540: Use of this flag for a register that has a fixed pervasive role
                    541: in the machine's execution model, such as the stack pointer or
                    542: frame pointer, will produce disastrous results.
                    543: A different sort of disaster will result from the use of this
                    544: flag for a register in which function values are may be returned.
                    545: .TP
                    546: .BI \-d "letters"
                    547: Says to make debugging dumps at times specified by \fIletters\fR.
                    548: Here are the possible letters:
                    549: .TP 10
                    550: .B \ \ \ \ \ \ \ \ r
                    551: Dump after RTL generation.
                    552: .TP 10
                    553: .B \ \ \ \ \ \ \ \ j
                    554: Dump after first jump optimization.
                    555: .TP 10
                    556: .B \ \ \ \ \ \ \ \ J
                    557: Dump after last jump optimization.
                    558: .TP 10
                    559: .B \ \ \ \ \ \ \ \ s
                    560: Dump after CSE (including the jump optimization that sometimes
                    561: follows CSE).
                    562: .TP 10
                    563: .B \ \ \ \ \ \ \ \ L
                    564: Dump after loop optimization.
                    565: .TP 10
                    566: .B \ \ \ \ \ \ \ \ f
                    567: Dump after flow analysis.
                    568: .TP 10
                    569: .B \ \ \ \ \ \ \ \ c
                    570: Dump after instruction combination.
                    571: .TP 10
                    572: .B \ \ \ \ \ \ \ \ l
                    573: Dump after local register allocation.
                    574: .TP 10
                    575: .B \ \ \ \ \ \ \ \ g
                    576: Dump after global register allocation.
                    577: .TP 10
                    578: .B \ \ \ \ \ \ \ \ m
                    579: Print statistics on memory usage, at the end of the run.
                    580: .SH FILES
                    581: .ta \w'/usr/local/lib/gcc-gnulib 'u
                    582: file.c input file
                    583: .br
                    584: file.o object file
                    585: .br
                    586: a.out  loaded output
                    587: .br
                    588: /tmp/cc?       temporary
                    589: .br
                    590: /usr/local/lib/gcc-cpp preprocessor
                    591: .br
                    592: /usr/local/lib/gcc-cc1 compiler
                    593: .br
                    594: /usr/local/lib/gcc-gnulib      library need by GCC on some machines
                    595: .br
                    596: /lib/crt0.o    runtime startoff
                    597: .br
                    598: /lib/libc.a    standard library, see
                    599: .IR intro (3)
                    600: .br
                    601: /usr/include   standard directory for `#include' files
                    602: .br
                    603: .SH "SEE ALSO"
                    604: B. W. Kernighan and D. M. Ritchie,
                    605: .I The C Programming Language,
                    606: Prentice-Hall,
                    607: 1978
                    608: .br
                    609: B. W. Kernighan,
                    610: .I
                    611: Programming in C
                    612: .br
                    613: D. M. Ritchie,
                    614: .I
                    615: C Reference Manual
                    616: .br
                    617: adb(1), ld(1), dbx(1), as(1)
                    618: .SH BUGS
                    619: Bugs should be reported to [email protected]. Bugs tend actually to be
                    620: fixed if they can be isolated, so it is in your interest to report them
                    621: in such a way that they can be easily reproduced according to get newer version.
                    622: .SH COPYING
                    623: Copyright (C) 1988 Richard M. Stallman.
                    624: .br
                    625: Permission is granted to make and distribute verbatim copies of
                    626: this manual provided the copyright notice and this permission notice
                    627: are preserved on all copies.
                    628: .br
                    629: Permission is granted to copy and distribute modified versions of this
                    630: manual under the conditions for verbatim copying, provided also that the
                    631: section entitled "GNU CC General Public License" is included exactly as
                    632: in the original, and provided that the entire resulting derived work is
                    633: distributed under the terms of a permission notice identical to this one.
                    634: .br
                    635: Permission is granted to copy and distribute translations of this manual
                    636: into another language, under the above conditions for modified versions,
                    637: except that the section entitled "GNU CC General Public License" may be
                    638: included in a translation approved by the author instead of in the original
                    639: English.
                    640: .SH AUTHORS
                    641: Richard M. Stallman

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.