123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- .sp 1.5i
- .NH
- Compiler options
- .nh
- .PP
- There are some options available to control the behaviour of the compiler.
- Two types of options can be distinguished: compile-time options and
- run-time options.
- .sp
- .NH 2
- Compile time options
- .LP
- .sp
- There are some options that can be set when the compiler is installed.
- Those options can be found in the file \fIParameters\fR. To set a parameter
- just modify its definition in the file \fIParameters\fR. The shell script
- in the file \fImake.hfiles\fR creates for each parameter a separate .h file.
- This mechanism is derived from the C compiler in ACK.
- .sp
- \fBIDFSIZE\fR
- .in +3m
- The maximum number of characters that are significant in an identifier. This
- value has to be at least the value of \fBMINIDFSIZE\fR, defined in the file
- \fIoptions.c\fR. A compile-time check is included to see if the value of
- \fBMINIDFSIZE\fR is legal. The compiler will not recognize some keywords
- if \fBIDFSIZE\fR is too small.
- .in -3m
- .sp
- \fBISTRSIZE\fR, \fBRSTRSIZE\fR
- .in +3m
- The lexical analyzer uses these two values for the allocation of memory needed
- to store a string. \fBISTRSIZE\fR is the initial number of bytes allocated.
- \fBRSTRSIZE\fR is the step size used for enlarging the memory needed.
- .in -3m
- .sp
- \fBNUMSIZE\fR
- .in +3m
- The maximum length of a numeric constant recognized by the lexical analyzer.
- It is an error if this length is exceeded.
- .in -3m
- .sp
- \fBERROUT\fR, \fBMAXERR_LINE\fR
- .in +3m
- Used for error messages. \fBERROUT\fR defines the file on which the
- messages are written. \fBMAXERR_LINE\fR is the maximum number of error
- messages given per line.
- .in -3m
- .sp
- \fBSZ_CHAR\fR, \fBAL_CHAR\fR, etc
- .in +3m
- The default values of the target machine sizes and alignments. The values
- can be overruled with the \-V option.
- .in -3m
- .sp
- \fBMAXSIZE\fR
- .in +3m
- This value must be set to the maximum of the values of the target machine
- sizes. This parameter is used in overflow detection (see also section 3.2).
- .in -3m
- .sp
- \fBDENSITY\fR
- .in +3m
- This parameter is used to decide what EM instruction has to be generated
- for a case-statement. If the range of the index value is sparse, i.e.
- .br
- .ti +5m
- (upperbound - lowerbound) / number_of_cases
- .br
- is more than some threshold (\fBDENSITY\fR) the \fBcsb\fR instruction is
- chosen. If the range is dense a jump table is generated (\fBcsa\fR). This
- uses more space. Reasonable values are 2, 3 or 4.
- .br
- Higher values might also be reasonable on machines, which have lots of
- address space and memory (see also section 3.3.3).
- .in -3m
- .sp
- \fBINP_READ_IN_ONE\fR
- .in +3m
- Used by the generic input module. It can either be defined or not defined.
- Defining it has the effect that files will be read completely into memory
- using only one read-system call. This should be used only on machines with
- lots of memory.
- .in -3m
- .sp
- .bp
- \fBDEBUG\fR
- .in +3m
- .nf
- If this parameter is defined some built-in compiler-debugging tools can be used:
- .in +2m
- \(bu only lexical analyzing is done, if the \-l option is given.
- \(bu if the \-I option is turned on, the allocated number of structures is printed.
- \(bu the routine debug can be used to print miscellaneous information.
- \(bu the routine PrNode prints a tree of nodes.
- \(bu the routine DumpType prints information about a type structure.
- \(bu the macro DO_DEBUG(x,y) defined as ((x) && (y)) can be used to perform
- several actions.
- .in -2m
- .in -3m
- .sp
- .NH 2
- Run time options
- .LP
- .sp
- The run time options can be given in the command line when the compiler is
- called.
- .br
- They all have the form: \-<character>
- .br
- Depending on the option, a character string has to be specified. The following
- options are currently available:
- .sp
- .IP \-\fBC\fR 18
- The lower case and upper case letters are treated different (\fBISO 6.1.1\fR).
- .sp
- .IP \-\fBu\fR
- The character '_' is treated like a letter, so it is allowed to use the
- underscore in identifiers.
- .br
- Note: identifiers starting with an underscore may cause problems, because
- .br
- \h'\w'Note: 'u'most identifiers in library routines start with an underscore.
- .sp
- .IP \-\fBn\fR
- This option suppresses the generation of register messages.
- .sp
- .IP \-\fBr\fR
- With this option rangechecks are generated where necessary.
- .sp
- .IP \-\fBL\fR
- Do not generate EM \fBlin\fR and \fBfil\fR instructions. These instructions
- are used only for profiling.
- .sp
- .IP \-\fBM\fR<number>
- Set the number of characters that are significant in an identifier to <number>.
- The maximum significant identifier length depends on the constant IDFSIZE,
- defined in \fIidfsize.h\fR.
- .sp
- .IP \-\fBi\fR<number>
- With this flag the setsize for a set of integers can be changed. The number must
- be the number of bits per set. Default value : (#bits in a word) \- 1
- .sp
- .IP \-\fBw\fR
- Suppress warning messages (see also section 2.5).
- .sp
- .IP \-\fBV\fR[[\fBw\fR|\fBi\fR|\fBf\fR|\fBp\fR|\fBS\fR][\fIsize\fR]?[\fI.alignment\fR]?]*
- .br
- Option to set the object sizes and alignments on the target machine
- dynamically. The objects that can be manipulated are:
- .br
- \fBw\fR\h'\w'ifpS'u' word
- .br
- \fBi\fR\h'\w'wfpS'u' integer
- .br
- \fBf\fR\h'\w'wipS'u' float
- .br
- \fBp\fR\h'\w'wifS'u' pointer
- .br
- \fBS\fR\h'\w'wifp'u' structure
- .br
- In case of a structure, \fIsize\fR is discarded and the \fIalignment\fR is
- the initial alignment of the structure. The effective alignment is the least
- common multiple of \fIalignment\fR and the alignment of its members. This
- option has been implemented so that the compiler can be used as cross
- compiler.
- .bp
|