Compilers: Intel Compilers for C++ and Fortran, Version 10.0
for IA32/EM64T-based applications in Linux_x64
Operating system: SuSE Linux Enterprise Server 10 (x86_64)
Invoke the Intel C compiler.
Also used to invoke linker for C programs.
Invoke the Intel C++ compiler.
Also used to invoke linker for C++ programs.
This macro indicates that the benchmark is being compiled on an Intel IA32-compatible system running the Linux operating system.
Portability changes for Linux
This flag can be set for SPEC compilation for Linux using default compiler.
The -fast option enhances execution speed across the entire program by including the following options that can improve run-time performance:
-O3 (maximum speed and high-level optimizations)
-ipo (enables interprocedural optimizations across files)
-xT (generate code specialized for Intel(R) Core(TM)2 Duo processors, Intel(R) Core(TM)2 Quad processors and Intel(R) Xeon(R) processors with SSSE3)
-no-prec-div (disable -prec-div) where -prec-div improves precision of FP divides (some speed impact)
-static (statically link libraries during compilation)
To override one of the options set by /fast, specify that option after the -fast option on the command line. The options set by /fast may change from release to release.
Code is optimized for Intel(R) Core(TM)2 Duo processors, Intel(R) Core(TM)2 Quad processors and Intel(R) Xeon(R) processors with SSSE3. 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.
Do not use this option if you are executing a program on a processor that is not an Intel processor. If you use this option on a non-compatible processor to compile the main program (in Fortran) or the function main() in C/C++, the program will display a fatal run-time error if they are executed on unsupported processors.
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
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. On Linux platforms, -O3 sets the following:
-fp
(disable/enable[default] -Qprec-div[-]) (Windows) [-no]-prec-div (Linux)
-Qprec-dev (Windows) and -prec-div (Linux) improves precision of floating-point divides. It has a slight impact on speed. -Qprec-dev- (Windows) and -no-prec-div (Linux) disables this option and enables optimizations that give slightly less precise results than full IEEE division.
When you specify -Qprec-dev- (Windows) or -no-prec-div (Linux) along with some optimizations, such as -xN and -xB (Linux) or /QxN and /QxB (Windows), the compiler may change floating-point division computations into multiplication by the reciprocal of the denominator. For example, A/B is computed as A * (1/B) to improve the speed of the computation.
However, sometimes the value produced by this transformation is not as accurate as full IEEE division. When it is important to have fully precise IEEE division, do not use -Qprec-dev- (Windows) or -no-prec-div (Linux) which will enable the default -Qprec-dev (Windows) or -prec-div (Linux) and the result is more accurate, with some loss of performance.
syntax: -Wl,-z,muldefs
Enable SmartHeap and/or other library usage by forcing the linker to ignore multiple definitions if present
-L
when used as an EXTRA_CLIB or EXTRA_CXXLIB variable,
results in linking with MicroQuill's SmartHeap 8.1 (32-bit) library
for Linux. This is a library that optimizes calls to new, delete, malloc and free.
This allows alloca to be set to the compiler's preferred alloca by SPEC rules.
This section contains descriptions of flags that were included implicitly by other flags, but which do not have a permanent home at SPEC.
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. On Linux platforms, -O3 sets the following:
-fp
Disable using EBP as general purpose register.
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.
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. On Linux platforms, -O1 sets the following:
-unroll0, -fno-builtin -mno-ieee-fp -fomit-frame-pointer -ffunction-sections
Tells the compiler the maximum number of times to unroll loops.
Disables inline expansion of all intrinsic functions.
Enables improved floating-point consistency. Floating-point operations are not reordered and the result of each floating-point operation is stored in the target variable rather than being kept in the floating- point processor for use in a subsequent calculation. This is the same as specifying -fltconsistency or -mp.
The default, -mno-ieee-fp, provides better accuracy and run-time per- formance at the expense of less consistent floating-point results.
Enable using EBP as general purpose register.
Separate functions for the linker (COMDAT). Same as -fdata-sections.
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
Code is optimized for Intel(R) Core(TM)2 Duo processors, Intel(R) Core(TM)2 Quad processors and Intel(R) Xeon(R) processors with SSSE3. 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.
Do not use this option if you are executing a program on a processor that is not an Intel processor. If you use this option on a non-compatible processor to compile the main program (in Fortran) or the function main() in C/C++, the program will display a fatal run-time error if they are executed on unsupported processors.
This option prevents linking with shared libraries. It causes the executable to link all libraries statically.
(disable/enable[default] -Qprec-div[-]) (Windows) [-no]-prec-div (Linux)
-Qprec-dev (Windows) and -prec-div (Linux) improves precision of floating-point divides. It has a slight impact on speed. -Qprec-dev- (Windows) and -no-prec-div (Linux) disables this option and enables optimizations that give slightly less precise results than full IEEE division.
When you specify -Qprec-dev- (Windows) or -no-prec-div (Linux) along with some optimizations, such as -xN and -xB (Linux) or /QxN and /QxB (Windows), the compiler may change floating-point division computations into multiplication by the reciprocal of the denominator. For example, A/B is computed as A * (1/B) to improve the speed of the computation.
However, sometimes the value produced by this transformation is not as accurate as full IEEE division. When it is important to have fully precise IEEE division, do not use -Qprec-dev- (Windows) or -no-prec-div (Linux) which will enable the default -Qprec-dev (Windows) or -prec-div (Linux) and the result is more accurate, with some loss of performance.
Platform settings
One or more of the following settings may have been set. If so, the "Platform Notes" section of the report will say so; and you can read below to find out more about what these settings mean.
Power Regulator for ProLiant support (Default=HP Dynamic Power Savings Mode)
Values for this BIOS setting can be:
Adjacent Sector Prefetch (Default = Enabled):
This BIOS option allows the enabling/disabling of a processor mechanism to fetch the adjacent cache line within an 128-byte sector that contains the data needed due to a cache line miss.
In some limited cases, setting this option to Disabled may improve performance. In the majority of cases, the default value of Enabled provides better performance. Users should only disable this option after performing application benchmarking to verify improved performance in their environment.
Hardware Prefetch (Default = Enabled):
This BIOS option allows allows the enabling/disabling of a processor mechanism to prefetch data into the cache according to a pattern recognition algorithm.
In some limited cases, setting this option to Disabled may improve performance. In the majority of cases, the default value of Enabled provides better performance. Users should only disable this option after performing application benchmarking to verify improved performance in their environment.
submit= MYMASK=`printf '0x%x' \$((1<<\$SPECCOPYNUM))`; /usr/bin/taskset \$MYMASK $command
When running multiple copies of benchmarks, the SPEC config file feature submit is sometimes used to cause individual jobs to be bound to specific processors. This specific submit command is used for Linux. The description of the elements of the command are:
ulimit -s
Sets the stack size to n kbytes, or unlimited to allow the stack size to grow without limit.
Flag description origin markings:
For questions about the meanings of these flags, please contact the tester.
For other inquiries, please contact webmaster@spec.org
Copyright 2006-2014 Standard Performance Evaluation Corporation
Tested with SPEC CPU2006 v1.0.
Report generated on Tue Jul 22 13:24:54 2014 by SPEC CPU2006 flags formatter v6906.