Description of compiler flags for Intel C Compiler 5.0.1 On RedHat 7.1 ---------------------------------------------------------------------- -O1 optimize for speed, but disable some optimizations which increase code size for a small speed benefit. Includes inline expansion except for intrinsic functions, global optimizations, string pooling optimizations. -O2 Optimizes for speed. The -O2 option includes O1 optimizations and in addition enables inlining of intrinsics and more speed optimizations. (-O2 is the default.) -O3: Builds on -01 and -02 optimizations by enabling high-level optimization. This level does not guarantee higher performance unless loop and memory access transformation take place. In conjunction with -axK/-xK and -axW/-xW, this switch causes the compiler to perform more aggressive data dependency analysis than for -O2. This may result in longer compilation times. -Oa[-] assume [do not assume] no aliasing in program -ax generate code specialized for processor extensions specified by while also generating generic IA-32 code. includes one or more of the following characters: i Pentium Pro and Pentium II processor instructions M MMX(TM) instructions K streaming SIMD extensions (implies i and M above) W Pentium 4 processor with Streaming SIMD Extensions 2 (implies i, M and K) -x generate specialized code to run exclusively on processors supporting the extensions indicated by as described above. -Ob{1|2|3} Controls the compiler's inline expansion. 0: disable inlining. 1: disables inlining unless -ip or -Ob2 are specified. 2: enables inlining of any function. However, the compiler decides which functions are inlined. This option enables interprocedural optimizations and has the same effect as specifying the -ip option. -ip enable single-file IP optimizations (within files, same as -Ob2) -ipo multi-file ip optimizations that includes: - inline function expansion - interprocedural constant propogation - dead code elimination - propagation of function characteristics - passing arguments in registers - loop-invariant code motion -prof_gen instrument program for profiling for the first phase of two-phase profile guided otimization -prof_use Instructs the compiler to produce a profile-optimized executable and merges available dynamic information (.dyn) files into a pgopti.dpi file. If you perform multiple executions of the instrumented program, -Qprof_use merges the dynamic information files again and overwrites the previous pgopti.dpi file. Without any other options, the current directory is searched for .dyn files -rcd The Intel compiler uses the -rcd option to improve the performance of code that requires floating-point-to-integer conversions. The system default floating point rounding mode is round-to-nearest. This means that values are rounded during floating point calculations. However, the C language requires floating point values to be truncated when a conversion to an integer is involved. To do this, the compiler must change the rounding mode to truncation before each floating point- to-integer conversion and change it back afterwards. The -rcd option disables the change to truncation of the rounding mode for all floating point calculations, including floating point-to-integer conversions. Turning on this option can improve performance, but floating point conversions to integer will not conform to C semantics. -fp_port Round floating-point results at assignments & casts (some speed impact) -Kc++eh Enables the full C++ Exception Handling unwind semantics. -Krtti Enables C++ Runtime Type Information (RTTI). Description of compiler flags for Intel FORTRAN Compiler 5.0.1 for RedHat 7.1 ----------------------------------------------------------------------------- -O1 optimize for speed, but disable some optimizations which increase code size for a small speed benefit. Includes inline expansion except for intrinsic functions, global optimizations, string pooling optimizations. -O2 Optimizes for speed. The -O2 option includes O1 optimizations and in addition enables inlining of intrinsics and more speed optimizations. -O3: Builds on -01 and -02 optimizations by enabling high-level optimization. This level does not guarantee higher performance unless loop and memory access transformation take place. In conjunction with -axK/-xK and -axW/-xW, this switch causes the compiler to perform more aggressive data dependency analysis than for -O2. This may result in longer compilation times. -ax generate code specialized for processor extensions specified by while also generating generic IA-32 code. includes one or more of the following characters: i Pentium Pro and Pentium II processor instructions M MMX(TM) instructions K streaming SIMD extensions (implies i and M above) W Pentium 4 processor with Streaming SIMD Extensions 2 (implies i, M and K above) -x generate specialized code to run exclusively on processors supporting the extensions indicated by as described above. -ip enable single-file IP optimizations (within files, same as -Ob2) -ipo multi-file ip optimizations that includes: - inline function expansion - interprocedural constant propogation - dead code elimination - propagation of function characteristics - passing arguments in registers - loop-invariant code motion -prof_gen instrument program for profiling for the first phase of two-phase profile guided otimization -prof_use Instructs the compiler to produce a profile-optimized executable and merges available dynamic information (.dyn) files into a pgopti.dpi file. If you perform multiple executions of the instrumented program, -Qprof_use merges the dynamic information files again and overwrites the previous pgopti.dpi file. Without any other options, the current directory is searched for .dyn files -rcd Enables fast float-to-int conversion. -fp_port Round floating-point results at assignments & casts (some speed impact) Portability options for CPU2000: ------------------------------- 176.gcc: -Dalloca=_alloca : so as to use the built-in optimized alloca -DUSG : Specify that the programming environment is like System V Unix systems 178.galgel: -FI : Fixed-format F90 source code. 186.crafty: -DLINUX_i386 : Specifies that it is a Linux Intel processor-based system which makes the compiler use "long long" as the 64-bit variable that 186.crafty needs. 252.eon -DHAS_ERRLIST : Specify that the programming environment provides a specification for "sys_errlist[]" 253.perlbmk: -DSPEC_CPU2000_LINUX_i386 : This enables the code changes for porting to Linux on i386 architecture to be utilized -DSPEC_CPU2000_NEED_BOOL : This enables the code changes for use of the SPEC provided definition of the boolean type -DSPEC_CPU2000_LINUX_GLIBC22 : This enables the code changes for compatibility with the 2.2 and later versions of the glibc libraries (also requires use of the src.alt approved for these versions of glibc) 254.gap: -DSYS_IS_USG -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIGNAL_PROTO -DSYS_HAS_CALLOC_PROTO : These defines specify the correct configuration settings for the Linux/GlibC program environment