![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI C compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI C++ compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI Fortran 95 compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Invoke the PathScale C compiler.
Also used to invoke linker for C programs.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI C compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Invoke the PathScale C++ compiler.
Also used to invoke linker for C++ programs.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI C++ compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI C++ compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Invoke the PathScale Fortran 77, 90 and 95 compilers.
Also used to invoke linker for Fortran programs and
for mixed C / Fortran. pathf90 and pathf95 are synonymous.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI Fortran 95 compiler.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The PGI Fortran 95 compiler.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Don't include Fortran main program object module.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Don't include Fortran main program object module.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Don't include Fortran main program object module.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[benchmark]](http://www.spec.org/auto/cpu2006/flags/benchmark.png)
This macro indicates that Fortran functions called from C should have their names lower-cased.
![[benchmark]](http://www.spec.org/auto/cpu2006/flags/benchmark.png)
This macro indicates that the benchmark is being compiled on a Linux system.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Don't include Fortran main program object module.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
CFP2006:
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.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Don't include Fortran main program object module.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[benchmark]](http://www.spec.org/auto/cpu2006/flags/benchmark.png)
This macro indicates that Fortran functions called from C should have their names lower-cased.
![[benchmark]](http://www.spec.org/auto/cpu2006/flags/benchmark.png)
This macro indicates that the benchmark is being compiled on a Linux system.
![[suite]](http://www.spec.org/auto/cpu2006/flags/suite.png)
This option is used to indicate that the host system's integers are 32-bits wide, and longs and pointers are 64-bits wide. Not all benchmarks recognize this macro, but the preferred practice for data model selection applies the flags to all benchmarks; this flag description is a placeholder for those benchmarks that do not recognize this macro.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Chooses generally optimal flags for the target platform. As of the PGI 7.0 release, the flags "-fast" and "-fastsse" are equivlent for 64-bit compilations. For 32-bit compilations "-fast" does not include "-Mscalasse", "-Mcache_align", or "-Mvect=sse".
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to perform interprocedural analysis. Equivalant to -Mipa=align,arg,const,f90ptr,shape,globals,libc,localarg,ptr,pure.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Interprocedural Analysis option: Automatically determine which functions to inline. IPA-based function inlining is performed from leaf routines upward.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to use relaxed precision in the calculation of some intrinsic functions. Can result in improved performance at the expense of numerical accuracy. The default on an AMD system is "-Mfprelaxed=rsqrt,order". The default on an Intel system is "-Mfprelaxed=rsqrt,sqrt,div,order"
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Link with the huge page runtime library and allocate a maximum n huge pages.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify the type of the target processor as AMD64 Barcelona Processor 64-bit mode.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Staticily link with the PGI runtime libraries. System libraries may still be dynamically linked.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Chooses generally optimal flags for the target platform. As of the PGI 7.0 release, the flags "-fast" and "-fastsse" are equivlent for 64-bit compilations. For 32-bit compilations "-fast" does not include "-Mscalasse", "-Mcache_align", or "-Mvect=sse".
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to perform interprocedural analysis. Equivalant to -Mipa=align,arg,const,f90ptr,shape,globals,libc,localarg,ptr,pure.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Interprocedural Analysis option: Automatically determine which functions to inline. IPA-based function inlining is performed from leaf routines upward.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to use relaxed precision in the calculation of some intrinsic functions. Can result in improved performance at the expense of numerical accuracy. The default on an AMD system is "-Mfprelaxed=rsqrt,order". The default on an Intel system is "-Mfprelaxed=rsqrt,sqrt,div,order"
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Link with the huge page runtime library and allocate a maximum n huge pages.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Generate zero-overhead C++ exception handlers.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify the type of the target processor as AMD64 Barcelona Processor 64-bit mode.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Staticily link with the PGI runtime libraries. System libraries may still be dynamically linked.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Chooses generally optimal flags for the target platform. As of the PGI 7.0 release, the flags "-fast" and "-fastsse" are equivlent for 64-bit compilations. For 32-bit compilations "-fast" does not include "-Mscalasse", "-Mcache_align", or "-Mvect=sse".
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to perform interprocedural analysis. Equivalant to -Mipa=align,arg,const,f90ptr,shape,globals,libc,localarg,ptr,pure.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Interprocedural Analysis option: Automatically determine which functions to inline. IPA-based function inlining is performed from leaf routines upward.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to use relaxed precision in the calculation of some intrinsic functions. Can result in improved performance at the expense of numerical accuracy. The default on an AMD system is "-Mfprelaxed=rsqrt,order". The default on an Intel system is "-Mfprelaxed=rsqrt,sqrt,div,order"
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Link with the huge page runtime library and allocate a maximum n huge pages.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify the type of the target processor as AMD64 Barcelona Processor 64-bit mode.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Staticily link with the PGI runtime libraries. System libraries may still be dynamically linked.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Chooses generally optimal flags for the target platform. As of the PGI 7.0 release, the flags "-fast" and "-fastsse" are equivlent for 64-bit compilations. For 32-bit compilations "-fast" does not include "-Mscalasse", "-Mcache_align", or "-Mvect=sse".
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to perform interprocedural analysis. Equivalant to -Mipa=align,arg,const,f90ptr,shape,globals,libc,localarg,ptr,pure.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Interprocedural Analysis option: Automatically determine which functions to inline. IPA-based function inlining is performed from leaf routines upward.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to use relaxed precision in the calculation of some intrinsic functions. Can result in improved performance at the expense of numerical accuracy. The default on an AMD system is "-Mfprelaxed=rsqrt,order". The default on an Intel system is "-Mfprelaxed=rsqrt,sqrt,div,order"
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Link with the huge page runtime library and allocate a maximum n huge pages.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify the type of the target processor as AMD64 Barcelona Processor 64-bit mode.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Staticily link with the PGI runtime libraries. System libraries may still be dynamically linked.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Generate profile-feedback instrumentation (PFI); this includes extra code to collect run-time statistics and dump them to a trace file for use in a subsequent compilation. PFI gathers information about a program's execution and data values but does not gather information from hardware performance counters. PFI does gather data for optimizations which are unique to profile-feedback optimization.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to perform interprocedural analysis. Equivalant to -Mipa=align,arg,const,f90ptr,shape,globals,libc,localarg,ptr,pure.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Interprocedural Analysis option: Automatically determine which functions to inline. IPA-based function inlining is performed from leaf routines upward.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Interprocedural Analysis option: Do not remove arguments replaced by -Mipa=ptr,const
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Enable profile-feedback optimizations.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Chooses generally optimal flags for the target platform. As of the PGI 7.0 release, the flags "-fast" and "-fastsse" are equivlent for 64-bit compilations. For 32-bit compilations "-fast" does not include "-Mscalasse", "-Mcache_align", or "-Mvect=sse".
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Enable dead store elimination.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to use relaxed precision in the calculation of some intrinsic functions. Can result in improved performance at the expense of numerical accuracy. The default on an AMD system is "-Mfprelaxed=rsqrt,order". The default on an Intel system is "-Mfprelaxed=rsqrt,sqrt,div,order"
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Link with the huge page runtime library and allocate a maximum n huge pages.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify the type of the target processor as AMD64 Barcelona Processor 64-bit mode.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Staticily link with the PGI runtime libraries. System libraries may still be dynamically linked.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Equivalent to -O3 -ipa -OPT:Ofast -fno-math-errno -ffast-math.
Use optimizations selected to maximize performance.
Although the optimizations are generally safe, they may affect
floating point accuracy due to rearrangement of computations.
NOTE: -Ofast enables -ipa (inter-procedural analysis), which places limitations on how libraries and .o files are built.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_create <path>
Used to specify that an instrumented executable program is to be
generated. Such an executable is suitable for producing feedback
data files with the specified prefix for use in feedback-directed
optimization (FDO).
The commonly used prefix is "fbdata".
This is OFF by default.
During the training run, the instrumented executable produces information regarding execution paths and data values, but does not generate information by using hardware performance counters.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_opt <prefix for feedback data files>
Used to specify feedback-directed optimization (FDO) by extracting
feedback data from files with the specified prefix, which were
previously generated using -fb-create.
The commonly used prefix is "fbdata".
The same optimization flags should be used
for both the -fb-create and fb_opt compile steps.
Feedback data files created from executables compiled
with different optimization flags may give checksum errors.
FDO is OFF by default.
During the -fb_opt compilation phase, information regarding execution paths and data values are used to improve the information available to the optimizer. FDO enables some optimizations which are only performed when the feedback data file is available. The safety of optimizations performed under FDO is consistent with the level of safety implied by the other optimization flags (outside of fb_create and fb_opt) specified on the compile and link lines.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
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.![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-OPT:Ofast
Use optimizations selected to maximize performance.
Although the optimizations are generally safe, they may affect
floating point accuracy due to rearrangement of computations.
This effectively turns on the following optimizations:
-OPT:ro=2:Olimit=0:div_split=ON:alias=typed.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
The -WOPT: Specifies options that affect the global optimizer. The options are enabled at -O2 or above.
-WOPT:aggstr=N
This controls the aggressiveness of the strength reduction optimization
performed by the scalar optimizer, in which induction expressions
within a loop are replaced by temporaries that are incremented
together with the loop variable. When strength reduction is overdone,
the additional temporaries increase register pressure, resulting in
excessive register spills that decrease performance.
The value specified must be a positive integer value, which specifies
the maximum number of induction expressions that will be strength-reduced
across an index variable increment.
When set at 0, strength reduction is only performed for non-trivial
induction expressions. The default is 11.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Compile for 32-bit ABI, also known as x86 or IA32.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Chooses generally optimal flags for the target platform. As of the PGI 7.0 release, the flags "-fast" and "-fastsse" are equivlent for 64-bit compilations. For 32-bit compilations "-fast" does not include "-Mscalasse", "-Mcache_align", or "-Mvect=sse".
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler to use relaxed precision in the calculation of some intrinsic functions. Can result in improved performance at the expense of numerical accuracy. The default on an AMD system is "-Mfprelaxed=rsqrt,order". The default on an Intel system is "-Mfprelaxed=rsqrt,sqrt,div,order"
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Link with the huge page runtime library and allocate a maximum n huge pages.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Generate zero-overhead C++ exception handlers.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify the type of the target processor as AMD64 Barcelona Processor 64-bit mode.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Don't check dependence relations for vector or parallel code.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Enable generation of prefetch instructions on processors where they are supported.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Allow parallelization of loops with conditional scalar assignments.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the compiler that static pointers and arrays do not overlap or conflict with each other and are independent.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Generate code to check for zero loop increments.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
"-Munroll=n:n" instructs the compiler to unroll loops n times where n is a supplied constant value. If no constant value is given, then a default of 4 is used.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the vectorizer to disable idiom recognition.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Instructs the vectorizer to generate prefetch instructions.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Staticily link with the PGI runtime libraries. System libraries may still be dynamically linked.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Equivalent to -O3 -ipa -OPT:Ofast -fno-math-errno -ffast-math.
Use optimizations selected to maximize performance.
Although the optimizations are generally safe, they may affect
floating point accuracy due to rearrangement of computations.
NOTE: -Ofast enables -ipa (inter-procedural analysis), which places limitations on how libraries and .o files are built.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-INLINE:aggressive : Tell the compiler to be more aggressive about inlining. The default is -INLINE:aggressive=OFF.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-OPT:malloc_alg=(0|1)
Select an alternate malloc algorithm which may improve speed.
The compiler adds setup code in the
C/C++/Fortran "main" function to enable the chosen algorithm.
The default is 0.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Compile for 32-bit ABI, also known as x86 or IA32.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
(For C++ only) -fexceptions enables exception handling. This is the default. -fno-exceptions disables exception handling.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_create <path>
Used to specify that an instrumented executable program is to be
generated. Such an executable is suitable for producing feedback
data files with the specified prefix for use in feedback-directed
optimization (FDO).
The commonly used prefix is "fbdata".
This is OFF by default.
During the training run, the instrumented executable produces information regarding execution paths and data values, but does not generate information by using hardware performance counters.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_opt <prefix for feedback data files>
Used to specify feedback-directed optimization (FDO) by extracting
feedback data from files with the specified prefix, which were
previously generated using -fb-create.
The commonly used prefix is "fbdata".
The same optimization flags should be used
for both the -fb-create and fb_opt compile steps.
Feedback data files created from executables compiled
with different optimization flags may give checksum errors.
FDO is OFF by default.
During the -fb_opt compilation phase, information regarding execution paths and data values are used to improve the information available to the optimizer. FDO enables some optimizations which are only performed when the feedback data file is available. The safety of optimizations performed under FDO is consistent with the level of safety implied by the other optimization flags (outside of fb_create and fb_opt) specified on the compile and link lines.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Compile for 32-bit ABI, also known as x86 or IA32.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
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.![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-OPT:IEEE_arithmetic,IEEE_arith,IEEE_a=(1|2|3)
Specify the level of conformance to IEEE 754 floating pointing
roundoff/overflow behavior.
The options can be one of the following:
1 Adhere to IEEE accuracy. This is the default when optimization levels -O0, -O1 and -O2 are in effect.
2 May produce inexact result not conforming to IEEE 754. This is the default when -O3 is in effect.
3 All mathematically valid transformations are allowed.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-CG:load_exe=N : Specify the threshold for subsuming a memory load
operation into the operand of an arithmetic instruction.
The value of 0 turns off this subsumption optimization.
If N is 1, this subsumption is performed only when the result of
the load has only one use.
This subsumption is not performed if the number of times the result
of the load is used exceeds the value N, a non-negative integer.
If the ABI is 64-bit and the language is Fortran, the default for N
is 2, otherwise the default is 1.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-CG:movnti=N : Convert ordinary stores to non-temporal stores when writing memory blocks of size larger than N KB. When N is set to 0, this transformation is avoided. The default value is 120 (KB).
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Enable or disable moving loop-invariant expressions out of loops. The default is ON.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-LNO:prefetch=(0|1|2|3) : This option specifies the level of prefetching.
0 = Prefetch disabled.
1 = Prefetch is done only for arrays that are always referenced in each iteration of a loop.
2 = Prefetch is done without the above restriction. This is the default.
3 = Most aggressive.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
(For C++ only) -fexceptions enables exception handling. This is the default. -fno-exceptions disables exception handling.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_create <path>
Used to specify that an instrumented executable program is to be
generated. Such an executable is suitable for producing feedback
data files with the specified prefix for use in feedback-directed
optimization (FDO).
The commonly used prefix is "fbdata".
This is OFF by default.
During the training run, the instrumented executable produces information regarding execution paths and data values, but does not generate information by using hardware performance counters.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_opt <prefix for feedback data files>
Used to specify feedback-directed optimization (FDO) by extracting
feedback data from files with the specified prefix, which were
previously generated using -fb-create.
The commonly used prefix is "fbdata".
The same optimization flags should be used
for both the -fb-create and fb_opt compile steps.
Feedback data files created from executables compiled
with different optimization flags may give checksum errors.
FDO is OFF by default.
During the -fb_opt compilation phase, information regarding execution paths and data values are used to improve the information available to the optimizer. FDO enables some optimizations which are only performed when the feedback data file is available. The safety of optimizations performed under FDO is consistent with the level of safety implied by the other optimization flags (outside of fb_create and fb_opt) specified on the compile and link lines.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
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.![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-OPT:Ofast
Use optimizations selected to maximize performance.
Although the optimizations are generally safe, they may affect
floating point accuracy due to rearrangement of computations.
This effectively turns on the following optimizations:
-OPT:ro=2:Olimit=0:div_split=ON:alias=typed.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-OPT:IEEE_arithmetic,IEEE_arith,IEEE_a=(1|2|3)
Specify the level of conformance to IEEE 754 floating pointing
roundoff/overflow behavior.
The options can be one of the following:
1 Adhere to IEEE accuracy. This is the default when optimization levels -O0, -O1 and -O2 are in effect.
2 May produce inexact result not conforming to IEEE 754. This is the default when -O3 is in effect.
3 All mathematically valid transformations are allowed.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
Specify options and transformations performed on loop nests by the Loop Nest Optimizer (LNO). The -LNO options are enabled only if -O3 is also specified on the pathf95 command line.
-LNO:blocking : Enable or disable the cache blocking transformation. The default is ON.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-LNO:ignore_feedback=(on|off|0|1) : If the flag is ON then feedback information from the loop annotations will be ignored in LNO transformations. The default is OFF.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_create <path>
Used to specify that an instrumented executable program is to be
generated. Such an executable is suitable for producing feedback
data files with the specified prefix for use in feedback-directed
optimization (FDO).
The commonly used prefix is "fbdata".
This is OFF by default.
During the training run, the instrumented executable produces information regarding execution paths and data values, but does not generate information by using hardware performance counters.
![[user]](http://www.spec.org/auto/cpu2006/flags/user.png)
-fb_opt <prefix for feedback data files>
Used to specify feedback-directed optimization (FDO) by extracting
feedback data from files with the specified prefix, which were
previously generated using -fb-create.
The commonly used prefix is "fbdata".
The same optimization flags should be used
for both the -fb-create and fb_opt compile steps.
Feedback data files created from executables compiled
with different optimization flags may give checksum errors.
FDO is OFF by default.
During the -fb_opt compilation phase, information regarding execution paths and data values are used to improve the information available to the optimizer. FDO enables some optimizations which are only performed when the feedback data file is available. The safety of optimizations performed under FDO is consistent with the level of safety implied by the other optimization flags (outside of fb_create and fb_opt) specified on the compile and link lines.