------------------------------------------------------
DELL
SPEC CPU2000 FLAG DESCRIPTIONS

  - INTEL C++ AND FORTRAN COMPILERS 5.0

    - dell.cpu2000.ic50.piii.14nov2000.cfg
    - dell.cpu2000.ic50.p4.14nov2000.cfg
    - dell.cpu2000.ic50.p4.01feb2001.cfg
------------------------------------------------------

------------------------------------------------------
INTEL C++ COMPILER 5.0 FLAG DESCRIPTIONS
------------------------------------------------------
-G{5|6|7}	Optimize code specifically for a targeted processor.  Includes
                one or more of the following characters:
                  5:  Pentium processors with or without MMX technology
                  6:  Pentium Pro, Pentium II, and Pentium III processors
                  7:  Pentium 4 processor

-GR[-]		Enables [disables (DEFAULT)] C++ Runtime Type Information (RTTI).

-GX[-]		Enables [disables (DEFAULT)] C++ exception handling.

-Oa[-] 		Assume [do not assume] no aliasing in program.

-Oi[-]		Enables (DEFAULT) [disables] inline expansion of standard
		library functions.

-Qax{i|M|K|W} 	Generate code specialized for processor extensions 
		specified by <codes> 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:  SSE extensions
		  W:  SSE2 extensions

-Qx{i|M|K|W}  	Generate specialized code to run exclusively on processors
            	supporting the extensions indicated by <codes> as described above.

-Qip        	Enable single-file IP optimizations (within files, same as -Ob2).

-Qipo       	Enable multi-file IP optimizations (between files).
		  - inline function expansion
              	  - interprocedural constant propogation
              	  - dead code elimination
              	  - propagation of function characteristics
              	  - passing arguments in registers
              	  - loop-invariant code motion

-Qwp_ipo	Additionally to -Qipo, makes the whole program assumption that 
                all variables and functions seen in compiled sources are 
                referenced only within those sources; the user must guarantee 
                that this assumption is safe. 

-Qprof_gen      Instrument program for profiling for the first phase of 
                two-phase profile guided optimization.

-Qprof_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.

-Qrcd           Improves the performance of code that performs floating 
                point-to-integer conversion. The optimization is obtained by 
                controlling the change of the rounding mode.


-Qunroll[n]     Specifies the maximum number of times to unroll a loop. Omit n 
                to let the compiler decide whether to perform unrolling or not. 
                Use n = 0 to disable unroller.

shlW32M.lib 	MicroQuill SmartHeap Library 5.0 available from
		www.microquill.com

------------------------------------------------------
INTEL FORTRAN COMPILER 5.0 FLAG DESCRIPTIONS
------------------------------------------------------
/O{1|2|3}	1:  optimize for speed, but disable some optimizations that
		    increase code size for a small speed benefit.  Includes
		    inline expansion for intrinsic functions, global
	  	    optimizations, string pooling optimizations.
		2:  optimizes for speed (DEFAULT).  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. This level does not guarantee higher performance 
	            unless loop and memory access transformation take place. In 
	            conjunction with -QaxK/-QxK and QaxW/QxW, 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.

/Ob{0|1|2}	Controls the compiler's inline expansion.
		  0:  disable inlining.
		  1:  disables inlining unless /Qip or /Ob2 are specified.
		  2:  enables inlining of any function.  However, the compiler
		      decides which functions are inlined.  This option enables
		      interprocedural optimizations and ahs the same effect as
		      specifying the /Qip option.

/Qauto		Causes all variables to be allocated on the stack, rather than 
                in local static storage. 

/Qax{i|M|K|W} 	Generate code specialized for processor extensions 
		specified by <codes> 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:  SSE extensions
		  W:  SSE2 extensions

/Qx{i|M|K|W}   	Generate specialized code to run exclusively on processors
               	supporting the extensions indicated by <codes> as 
               	described above.

/Qip        	Enable single-file IP optimizations (within files, same as /Ob2).

/Qipo       	Enable multi-file IP optimizations (between files).
              	  - inline function expansion
                  - interprocedural constant propogation
                  - dead code elimination
                  - propagation of function characteristics
                  - passing arguments in registers
                  - loop-invariant code motion

/Qprefetch[-]	Enable [disable (DEFAULT)] prefetch insertion.  The default 
		with /O3 is /Qprefetch.

/Qprof_gen      Instrument program for profiling for the first phase of 
                two-phase profile guided otimization.

/Qprof_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.

/Qrcd           Improves the performance of code that performs floating 
                point-to-integer conversion. The optimization is obtained by 
                controlling the change of the rounding mode.

/Qscalar_rep[-] Enables (DEFAULT) [disables] scalar replacement performed 
                during loop transformations.

/Qunroll[n]     Specifies the maximum number of times to unroll a loop. Omit n 
                to let the compiler decide whether to perform unrolling or not. 
                Use n = 0 to disable unroller.

shlW32M.lib 	MicroQuill SmartHeap Library 5.0 available from
		www.microquill.com

------------------------------------------------------
MISCELLANEOUS
------------------------------------------------------
The starting tokens "/" and "-" are both equivalent for flags passed to the 
compiler.  For example, -QxK and /QxK 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.

------------------------------------------------------
PORTABILITY OPTIONS FOR CPU2000
------------------------------------------------------
176.gcc:     
   -Dalloca=_alloca 	  :  So as to use the built-in optimized alloca.
   /F10000000       	  :  176.gcc uses alloca and this options tells the
			     linker to pre-allocate 10MB of stack. The 
			     default amount of stack allocated is not enough 
			     and 176.gcc crashes with a run-time error

178.galgel: 
   /FI                    : Fixed-format F90 source code. 
   /F32000000             : Same as with 176.gcc, pre-allocates a 32MB 
                            stack

186.crafty: 
   -DNT_i386              :  Specifies that it is a Windows NT Intel processor-based 
                             system which makes the compiler use "_int64" 
                             as the 64-bit variable that 186.crafty needs.        

253.perlbmk: 
   -DSPEC_CPU2000_NTOS    :  This enables the code changes for porting to
                             Windows get included.
   -DPERLDLL              :  On Windows, we need a perl.exe instead of a
                             perl.exe and perl.dll. This
                             pre-defines ensures that the changes necessary
                             to get a single, UNIX-style executible
                             without getting the indirect calls that can
                             cause a 10% performance degradation. This
                             allows the Windows-based executible to be as
                             close as possible to the Unix-based one. 
   /MT                    :  Use the static multi-threaded library else it
                             will not compile.

254.gap:
   -DSYS_HAS_CALLOC_PROTO :  
   -DSYS_HAS_MALLOC_PROTO :  These two pre-defines tell of the existence of
                             malloc and calloc prototypes.