The types and explanations for options of the compile phase are shown below.
| 
 Specifies the language to assume in compiling the source file.  | 
||
| 
 Specifies the names of files to be included at the head of each compiling unit.  | 
||
| 
 Specifies the numbers of information-level messages to be disabled.  | 
||
| 
 Specifies the names of folders that hold files for inter-file inline expansion.  | 
||
| 
 Selects files that will not be checked against the MISRAC: 2004 rules or MISRA-C: 2012 rules.  | 
||
| 
 Enables complete checking against the MISRA-C: 2004 rules or MISRA-C: 2012 rules for parts of the code where this would otherwise be suppressed due to use of an extended specification.  | 
||
| 
 Variables are allocated to sections that match their alignment values.  | 
||
| 
 Alignment values of variables are ignored in allocating the variables to sections.  | 
||
| 
 Instructions at branch destinations are aligned with 4-byte boundaries.  | 
||
| 
 Instructions at branch destinations are aligned with 8-byte boundaries.  | 
||
| 
 Instructions at branch destinations have no specific alignment.  | 
||
| 
 Generates code in which no DIV, DIVU, or FDIV instructions are used for division and modular division.  | 
||
| 
 -stack_protector/-stack_protector_all [Professional Edition only] [V2.04.00 or later]  | 
 This option generates a code for detection of stack smashing.  | 
|
| 
 Outputs additional information for inter-module optimization.  | 
||
| 
 External variables are handled as if they are all volatile qualified.  | 
||
| 
 External variables are handled as if none of them have been declared volatile.  | 
||
| 
 Enables constant propagation of const qualified external variables.  | 
||
| 
 Disables constant propagation of const qualified external variables.  | 
||
| 
 Divisions and remainders of integer constants are converted into instruction sequences.  | 
||
| 
 Divisions and remainders of integer constants are not converted into instruction sequences.  | 
||
| 
 Selects division of the ranges for optimization into multiple sections before compilation.  | 
||
| 
 Selects non-division of the ranges for optimization into multiple sections before compilation.  | 
||
| 
 Pipeline processing is considered in scheduling instructions.  | 
||
| 
 Access to external variables is optimized as defined in the file to be compiled.  | 
||
| 
 Division of floating-point constants is converted into multiplication.  | 
||
| 
 Variables with the register storage class specification are given preference for allocation to registers.  | 
||
| 
 Part of the type conversion processing between the floating-point type and the integer type is omitted.  | 
||
| 
 Optimization is performed in consideration of the types of data indicated by pointers.  | 
||
| 
 The orders of operations in floating-point expressions are modified for optimization.  | 
||
| 
 The results of compiling multiple source files are output to a single object file.  | 
||
| 
 Makes the compiler perform optimization on the assumption that all source files have been input.  | 
||
| 
 Selects the rounding method for floating-point constant operations.  | 
||
| 
 Selects the operation when denormalized numbers are used to describe floating-point constants.  | 
||
| 
 Replaces the int type with the short type and the unsigned int type with the unsigned short type.  | 
||
| 
 Selects whether or not the sizes for enumerated types are automatically selected.  | 
||
| 
 Specifies one as the boundary alignment value for structure members and class members.  | 
||
| 
 Aligns structure members and class members to the alignment boundaries for the given data types.  | 
||
| 
 Selects enabling or disabling of C++ runtime type information (dynamic_cast or typeid).  | 
||
| 
 Selects a general register for exclusive use with the fast interrupt function.  | 
||
| 
 Selects avoidance or non-avoidance of a problem specific to the CPU type.  | 
||
| 
 The contents of ACC are saved and restored in interrupt functions.  | 
||
| 
 The character codes of input programs are interpreted as EUC codes.  | 
||
| 
 The character codes of input programs are interpreted as SJIS codes.  | 
||
| 
 The character codes of input programs are interpreted as ISO-Latin1 codes.  | 
||
| 
 The character codes of input programs are interpreted as UTF-8 codes.  | 
||
| 
 The character codes of input programs are interpreted as BIG5 codes.  | 
||
| 
 The character codes of input programs are interpreted as GB2312 codes.  | 
||
| 
 Selects the character coding for an output assembly-language file.  | 
||