Copyright © 2007. Advanced Micro Devices. All rights reserved.
Selecting one of the following will take you directly to that section:
HEADER for OPTIMIZATION
Specify the basic level of optimization desired.
The options can be one of the following:
0 Turn off all optimizations.
1 Turn on local optimizations that can be done quickly. Do peephole optimizations and instruction scheduling.
2 Turn on extensive optimization.
This is the default.
The optimizations at this level are generally conservative, in the sense that they are virtually always beneficial and avoid changes which affect such things as floating point accuracy. In addition to the level 1 optimizations, do inner loop unrolling, if-conversion, two passes of instruction scheduling, global register allocation, dead store elimination, instruction scheduling across basic blocks, and partial redundancy elimination.
3 Turn on aggressive optimization.
The optimizations at this level are distinguished from -O2 by their aggressiveness, generally seeking highest-quality generated code even if it requires extensive compile time. They may include optimizations that are generally beneficial but may hurt performance.
This includes but is not limited to turning on the Loop Nest Optimizer, -LNO:opt=1, and setting -OPT:roundoff=1:IEEE_arithmetic=2:Olimit=9000:reorg_common=ON.
s Specify that code size is to be given priority in tradeoffs with execution time.If no value is specified, 2 is assumed.
-LANG:copyinout : This is a workaround suggested by Qlogic for a severe performance bug in the Pathscale 2.5 Fortran compiler. Several benchmarks (e.g. 121.pop2) take an excessive amount of time to run without specifying this flag.
HEADER for PORTABILITY
There is a name conflict between stdio.h and the MPI C++ binding with respect to the names SEEK_SET, SEEK_CUR, and SEEK_END. MPI wants these in the MPI namespace, but stdio.h will #define these to integer values. #undef'ing these can cause obscure problems with other include files (such as iostream), so MPICH2 instead uses #error to indicate a fatal error. Users can either #undef the names before including mpi.h or include mpi.h *before* stdio.h or iostream. Alternately, passing this flag causes MPICH2 to ignore this naming conflict.
If -funderscoring is in effect, and the original Fortran external identifier contained an underscore, -fsecond-underscore appends a second underscore to the one added by -funderscoring. -fno-second-underscore does not append a second underscore. The default is both -funderscoring and -fsecond-underscore, the same defaults as g77 uses. -fno-second-underscore corresponds to the default policies of PGI Fortran and Intel Fortran.
Needed to link 115.fds4 with Pathscale. Should be present in flags.xml for 115.fds4 instead of here.
HEADER for COMPILER
MPI wrapper script for a C compiler. The wrapper script provides all the needed include directories and libraries needed to compile programs for MPI.
MPI wrapper script for a C++ compiler. The wrapper script provides all the needed include directories and libraries needed to compile programs for MPI.
MPI wrapper script for a Fortran compiler. The wrapper script provides all the needed include directories and libraries needed to compile programs for MPI.
HEADER for OTHER
Compiler directive to look in current directory for header files.