| Optimization Level |
Specify the optimizations that you want the compiler to apply to the generated object code: - Off (default) - Disable optimizations. This setting is equivalent to specifying the -opt level=0 command-line option. The compiler generates unoptimized, linear assembly-language code.
- 1 - The compiler performs all target-independent (that is, non-parallelized) optimizations, such as function inlining. This setting is equivalent to specifying the -opt level=1 command-line option. The compiler omits all target-specific optimizations and generates linear assembly-language code.
- 2 - The compiler performs all optimizations (both target-independent and target-specific). This setting is equivalent to specifying the -opt level=2 command-line option. The compiler outputs optimized, non-linear, parallelized assembly-language code.
- 3 - The compiler performs all the level 2 optimizations, then the low-level optimizer performs global-algorithm register allocation. This setting is equivalent to specifying the -opt level=3 command-line option. At this optimization level, the compiler generates code that is usually faster than the code generated from level 2 optimizations.
- 4 - The compiler performs all the level 3 optimizations. This setting is equivalent to specifying the -opt level=4 command-line option. At this level, the compiler adds repeated subexpression elimination and loop-invariant code motion.
|
| Speed vs. Size |
Use to specify an Optimization Level greater than 0 . - Speed - The compiler optimizes object code at the specified Optimization Level such that the resulting binary file has a faster execution speed, as opposed to a smaller executable code size. This setting is equivalent to specifying the -opt speed command-line option.
- Size - The compiler optimizes object code at the specified Optimization Level such that the resulting binary file has a smaller executable code size, as opposed to a faster execution speed. This setting is equivalent to specifying the -opt space command-line option.
|
| Inter-Procedural Analysis |
Control whether the compiler views single or multiple source files at compile time. - Off- Compiler compiles one file at a time. The functions are displayed in order as they appear in the source file. An object file is created for each source.
- File- The compiler sees all the functions and data in a translation unit (source file) before code or data is generated. This allows inlining of functions that may not have been possible in -ipa off mode.
|
| Inline Level |
Enables inline expansion. If there is a #pragma INLINE before a function definition, all calls of this function are replaced by the code of this function, if possible. The options available are:
- Off - No functions are inlined.
- Smart (default) - Inlines function declared with the inline qualifier.
- 1 - 8 - Inlines functions up to n levels deep. Level 0 is the same as -inline on. For n, enter 1 to 8 levels.
|
| Auto Inline |
Inlines small function even if they are not declared with the inline qualifier |
| Bottom-up Inlining |
Check to control the bottom-up function inlining method. When active, the compiler inlines function code starting with the last function in the chain of functions calls, to the first one. |