------------------------------------------------------ Apple SPEC CPU2000 FLAG DESCRIPTIONS - Intel C/C++/Visual FORTRAN Compilers Version 9.1 - For Mac OS X - Apple-20061120-IC91.txt ------------------------------------------------------ ------------------------------------------------------ General Options (C/C++/FORTRAN) ------------------------------------------------------ -fast This option maximizes speed across the entire program by including the following Options (IA32, EM64T) -O3 -ipo -mdynamic-no-pic -no-prec-div -O{1|2|3} Optimization-level options: 1: optimize for speed, but disable some optimizations which increase code size for a small speed benefit. Includes inline expansion for intrinsic functions, global optimizations, string pooling optimizations. 2: This is the default level of optimization. Optimizes for speed. The -O2 option includes O1 optimizations and in addition enables inlining of intrinsics and more speed optimizations. 3: Builds on -01 and -02 optimizations by enabling high-level optimization. Enable more aggressive optimizations such as loop and memory access transformation, and prefetching. The -O3 optimization optimizes for maximum speed, but may not improve performance for some programs. The -O3 optimization may slow down code in some cases compared to -O2 optimization. Recommended for applications that have loops with heavy use of floating point calculations and process large data sets. In conjunction with -ax{K|W|N|B|P} and -x{K|W|N|B|P}, this switch causes the compiler to perform more aggressive data dependency analysis than for -O2. This may result in longer compilation times. -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 -[no-]prec-div Improves precision of floating point divides. -prof_gen Instrument program for profiling for the first phase of two-phase profile guided optimization. -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. -parallel Enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel. The -parallel option enables the auto-parallelizer if either the -O2 or -O3 optimization option is also on (the default is -O2). -i-static (Linux) This option prevents linking with shared libraries. It causes the executable to link all libraries statically. -x Generate specialized code for processor specified by while also generating generic code. is the processor for which you want to target your program. Possible values are: K: Code is optimized for Intel® Pentium® III and compatible Intel processors. W: Code is optimized for Intel Pentium 4 and compatible Intel processors. N: Code is optimized for Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 2. The resulting code may contain unconditional use of features that are not supported on other processors. This option also enables new optimizations in addition to Intel processor-specific optimizations including advanced data layout and code restructuring optimizations to improve memory accesses for Intel processors. B: Code is optimized for Intel Pentium M and compatible Intel processors. This option also enables new optimizations in addition to Intel processor-specific optimizations. P: Code is optimized for Intel® Core™ Duo processors, Intel® Core™ Solo processors, Intel® Pentium® 4 processors with Streaming SIMD Extensions 3, and compatible Intel processors with Streaming SIMD Extensions 3. The resulting code may contain unconditional use of features that are not supported on other processors. This option also enables new optimizations in addition to Intel processor-specific optimizations including advanced data layout and code restructuring optimizations to improve memory accesses for Intel processors. Additional Notes on N and P: ------------------------------------ The N and P options target your program to run on Intel Pentium 4 and compatible Intel processors. The resulting code might contain unconditional use of features that are not supported on other processors. Programs, where the function main() is compiled with this option, will detect non compatible processors and generate an error message during execution. These options also enable new optimizations in addition to Intel processor-specific optimizations including advanced data layout and code restructuring optimizations to improve memory accesses for Intel processors. ------------------------------------------------------ General Options and Libraries ------------------------------------------------------ The starting tokens "/" and "-" are both equivalent for flags passed to the compiler. For example, -QxW and /QxW are identical switches. +FDO PASS1=-Qprof_gen PASS2=-Qprof_use Using feedback-directed optimization, a profile is generated on the first pass of compilation and used on the second pass. -lstmalloc Links Apple's single threaded malloc implementation. ------------------------------------------------------ General Options and Libraries ------------------------------------------------------ The starting tokens "/" and "-" are both equivalent for flags passed to the compiler. For example, -QxW and /QxW are identical switches. +FDO PASS1=-Qprof_gen PASS2=-Qprof_use Using feedback-directed optimization, a profile is generated on the first pass of compilation and used on the second pass. shlW32M.lib MicroQuill SmartHeap Library available from http://www.microquill.com ------------------------------------------------------ Benchmark-Specific Portability Options ------------------------------------------------------ 176.gcc: -DHOST_WORDS_LITTLE_ENDIAN Indicates host is a little endian machine. 186.crafty: -DLINUX_i386 Linux Intel system, use "long long" as 64-bit variable. 197.parser: -D_POSIX_SOURCE Treat 197.parser as POSIX compliant source. 252.eon: -DHAS_ERRLIST Prog env provides specification for "sys_errlist[]". -DFMAX_IS_DOUBLE Function fmax() returns a double value. 253.perlbmk: -DSPEC_CPU2000_MACOSX_IA32 Compile for an IA32 system running Mac OS X. 254.gap: -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIGNAL_PROTO -DSYS_HAS_CALLOC_PROTO These pre-defines tell of the existence of ioctl, time, signal, and calloc prototypes. -DSYS_HAS_STDIO_PROTO This pre-define tell the existence of stdio header file. -DSYS_IS_BSD Specifies that the operating system is BSD compliant. -DSYS_HAS_ANSI System is ANSI compliant. 178.galgel: -FI Fixed-format F90 source code.