Default Compiler Optimizations

If you invoke the IntelŪ Fortran Compiler without specifying any compiler options, the default state of each option takes effect. The following tables summarize the options whose default status is ON as they are required for Intel Fortran Compiler default operation. The tables group the options by their functionality.

For the default states and values of all options, see Compiler Options Quick Reference Alphabetical table in the IntelŪ Fortran Compiler Options Quick Reference. The table provides links to the sections describing the functionality of the options. If an option has a default value, such value is indicated.

Per your application requirement, you can  disable one or more options. For general methods of disabling optimizations, see Volume I.

The following tables list all options that compiler uses for its default optimizations.

Data Setting and Fortran Language Conformance

Default Option

Description

-align
-align
records

Analyzes and reorders memory layout for variables and arrays.

-align rec8bytes

Specifies 8-byte boundary for alignment constraint.

-altparam

Specifies if alterate form of parameter constant declarations is recognized or not.

-ansi_alias

Enables assumption of the program's ANSI conformance.

-assume cc_omp

Enables OpenMP conditional compilation directives.

-ccdefault default

Specifies default carriage control for units 6 and *.

-double_size 64

Defines the default KIND for double-precision variables to be 64.

-double_size 64 n is 64 (KIND=8)

-dps

Enables DEC* parameter statement recognition.

-error_limit 30

Specifies the maximum number of error-level or fatal-level compiler errors permissible.

-fpe 3

Specifies floating-point exception handling at run time for the main program.

-iface nomixed_str_len_arg

Specifies the type of argument-passing conventions used for general arguments and for hidden-length character arguments.

-integer_size 32

Specifies the default size of integer and logical variables.

-libdir all

Controls the library names that should be emitted into the object file.

-pad

Enables changing variable and array memory layout.

-pc80
IA-32 only

-pc{32|64|80} enables floating-point significand precision control as follows: -pc32 to 24-bit significand, -pc64 to 53-bit significand, and -pc80 to 64-bit significand.

-real_size 64

Specifies the size of REAL and COMPLEX declarations, constants, functions, and intrinsics.

-save

Saves all variables in static allocation. Disables
-auto
, that is, disables setting all variables AUTOMATIC.

-Zp8

-Zp{n} specifies alignment constraint for structures on 1-, 2-, 4-, 8-, or 16-byte boundary. To disable, use
-align-
.

Optimizations

Default Option

Description

-assume cc_omp

Enables OpenMP conditional compilation directives.

-fp
IA-32 only

Disables the use of the ebp register in optimizations. Directs to use the ebp-based stack frame for all functions.

-fpe 3

Specifies floating-point exception handling at run time for the main program. -fpe 0 disables the option.

-ip_no_inlining

Disables full or partial inlining that would result from the -ip interprocedural optimizations. Requires -ip or -ipo.

-IPF_fltacc-
ItaniumŪ compiler

Enables the compiler to apply optimizations that affect floating-point accuracy.

-IPF_fma
Itanium compiler

Enables the contraction of floating-point multiply and add/subtract operations into a single operation.

-IPF_fp_speculation
fast

Itanium compiler

Sets the compiler to speculate on floating-point operations. -IPF_fp_speculationoff disables this optimization.

-ipo_obj
Itanium compiler

Forces the generation of real object files. Requires -ipo.
IA-32 systems: OFF

-O, -O1, -O2

Optimize for maximum speed.

-Ob1

Disables inlining unless -ip or -Ob2 is specified.

-openmp_report1

Indicates loops, regions, and sections parallelized.

-opt_report_levelmin

Specifies the minimal level of the optimizations report.

-par_report1

Indicates loops successfully auto-parallelized.

-tpp2
Itanium compiler

Optimizes code for the IntelŪ ItaniumŪ 2 processor for Itanium-based applications. Generated code is compatible with the Itanium processor.

-tpp7
IA-32 only

Optimizes code for the IntelŪ PentiumŪ 4 and IntelŪ Xeon(TM) processor for IA-32 applications.

-unroll

-unroll[n]: omit n to let the compiler decide whether to perform unrolling or not (default).
Specify n to set maximum number of times to unroll a loop.
The Itanium compiler currently uses only

n
= 0, -unroll0 (disabled option) for compatibility.

-vec_report1

Indicates loops successfully vectorized.

Disabling Default Options

To disable an option, use one of the following as applies:

ifort -O2 -O0 input_file(s)

Note
The -O0 option is part of a mutually-exclusive group of options that includes -O0, -O, -O1, -O2, and -O3. The last of any of these options specified on the command line will override the previous options from this group.

Note
I
f there are enabling and disabling versions of switches on the line, the last one takes precedence.