------------------------------------------------------
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<processor>
		Generate specialized code for processor specified by <codes>
		while also generating generic code.

		<processor> 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 <codes> 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.