Compilers: Oracle Solaris Studio 12.3, 1/13 Platform Specific Enhancement
Operating systems: Solaris 11
Last updated: 29-Jan-2013 gr
The text for many of the descriptions below was taken from the Oracle Studio Compiler Documentation, which is copyright © 2007-2013 Oracle Corporation, Inc. The original documentation can be found at docs.sun.com.
This document has both optimization flags (in the immediately following section) and a description of Platform Settings
Invoke the Oracle Solaris Studio C Compiler.
Invoke the Oracle Solaris Studio C++ Compiler
Invoke the Oracle Solaris Studio C Compiler.
Invoke the Oracle Solaris Studio C++ Compiler
This macro indicates that the benchmark is being compiled on a SPARC/Solaris system.
SPEC_CPU_SOLARIS is used so that SUN submitters don't have to bother specifying SPEC_CPU_HAVE_BOOL. It sets HAVE__BOOL, and also includes alloca.h.
Enables portability changes for Solaris
This flag can be set for SPEC compilation for Solaris using default compiler.
This macro indicates that the benchmark is being compiled on a SPARC/Solaris system.
SPEC_CPU_SOLARIS is used so that SUN submitters don't have to bother specifying SPEC_CPU_HAVE_BOOL. It sets HAVE__BOOL, and also includes alloca.h.
Enables portability changes for Solaris
This flag can be set for SPEC compilation for Solaris using default compiler.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Set the preferred page size for running the program.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Reads mapfile as a text file of directives to ld.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Set the preferred page size for running the program.
Allows the compiler to perform type-based alias analysis:
Use STLport's Standard Library implementation instead of the default libCstd.
This library provides faster versions of some common functions, such as malloc/free and bcopy.
Reads mapfile as a text file of directives to ld.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Treat pointer-valued function parameters as restricted pointers.
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
Specify optimization level. Can be written either as -xOn or -On, where n indicates:
xcache defines the cache properties for use by the optimizer. It can specify use of default assumptions ("generic"); use of whatever the compiler can assume about the current platform ("native"); or an explicit description of up to three levels of cache, using colon-separated specifiers of the form si/li/ai/ti, where:
This library provides faster versions of some common functions, such as malloc/free and bcopy.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
Inliner only considers routines smaller than n pseudo instructions as possible inline candidates.
Control the optimizer's loop inliner; Set inline callee size limit to n. The unit roughly corresponds to the number of instructions.
Control the optimizer's loop inliner; The inliner is allowed to increase the size of the program by up to n%.
This library provides faster versions of some common functions, such as malloc/free and bcopy.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Specify optimization level. Can be written either as -xOn or -On, where n indicates:
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Control the level of searching that the compiler does for prefetch opportunities by setting n to 1, 2, or 3, where higher numbers mean to do more searching. The default for Fortran is 2. The default for C and C++ is 1.
Generate indirect prefetches for data arrays accessed indirectly.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Control the level of searching that the compiler does for prefetch opportunities by setting n to 1, 2, or 3, where higher numbers mean to do more searching. The default for Fortran is 2. The default for C and C++ is 1.
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
Generate indirect prefetches for data arrays accessed indirectly.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Treat pointer-valued function parameters as restricted pointers.
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis at the specified alias level:
xcache defines the cache properties for use by the optimizer. It can specify use of default assumptions ("generic"); use of whatever the compiler can assume about the current platform ("native"); or an explicit description of up to three levels of cache, using colon-separated specifiers of the form si/li/ai/ti, where:
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
Enable the loop unroller (en=1 enables, en=0 disables) for loops with control flow, with an unroll count of 4.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Set the preferred page size for running the program.
Specifies which instructions can be used. Among the choices are:
xcache defines the cache properties for use by the optimizer. It can specify use of default assumptions ("generic"); use of whatever the compiler can assume about the current platform ("native"); or an explicit description of up to three levels of cache, using colon-separated specifiers of the form si/li/ai/ti, where:
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Control the level of searching that the compiler does for prefetch opportunities by setting n to 1, 2, or 3, where higher numbers mean to do more searching. The default for Fortran is 2. The default for C and C++ is 1.
Enable the loop unroller (en=1 enables, en=0 disables) for loops with control flow, with an unroll count of 4.
Do function entry alignment at n-byte boundaries.
Links in a linker mapfile that aligns text, data, and bss on B boundaries.
Links in a library of general purpose memory allocation routines which can be faster than those found in libc, at the expense of more virtual memory consumed.
Reads mapfile as a text file of directives to ld.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
xcache defines the cache properties for use by the optimizer. It can specify use of default assumptions ("generic"); use of whatever the compiler can assume about the current platform ("native"); or an explicit description of up to three levels of cache, using colon-separated specifiers of the form si/li/ai/ti, where:
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis:
Enable unrolling loops n times where possible.
Synonym for -unroll=n
xchip determines timing properties that are assumed by the compiler. It does not limit which instructions are allowed (see xtarget for that). Among the choices are:
Control the level of searching that the compiler does for prefetch opportunities by setting n to 1, 2, or 3, where higher numbers mean to do more searching. The default for Fortran is 2. The default for C and C++ is 1.
Use STLport's Standard Library implementation instead of the default libCstd.
This library provides faster versions of some common functions, such as malloc/free and bcopy.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Enables the use of the fused multiply-add instruction.
Set the preferred page size for running the program.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Allows the compiler to perform type-based alias analysis:
Enable unrolling loops n times where possible.
Synonym for -unroll=n
Enable generation of prefetch instructions on those architectures that support prefetch. val may be one of the following:
If only -xprefetch is specified, -xprefetch=auto,explicit is assumed.
The default is -xprefetch=auto,explicit.
Generate indirect prefetches for data arrays accessed indirectly.
Use STLport's Standard Library implementation instead of the default libCstd.
This library provides faster versions of some common functions, such as malloc/free and bcopy.
Collect profile data for feedback-directed optimization (FDO). If an option directory is named, the feedback will be stored there.
When FDO is used, the training run gathers information regarding execution paths. As of the Sun Studio 12 version of the compiler suite, the training run gathers information about data values on SPARC systems, but not on x86 systems. Hardware performance counters are not used. FDO improves existing optimizations but does not introduce new classes of optimization.
Use data collected for profile feedback. If an option directory is named, look for the feedback data there.
A convenience option, this switch selects several other options that are described in this file.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
Set the preferred page size for running the program.
Specifies which instructions can be used. Among the choices are:
xcache defines the cache properties for use by the optimizer. It can specify use of default assumptions ("generic"); use of whatever the compiler can assume about the current platform ("native"); or an explicit description of up to three levels of cache, using colon-separated specifiers of the form si/li/ai/ti, where:
Allows the compiler to perform type-based alias analysis:
Analyze loops for inter-iteration data dependencies, and do loop restructuring.
Perform optimizations across all object files in the link step:
At -xipo=2, the compiler performs inter-procedural aliasing analysis as well as optimization of memory allocation and layout to improve cache performance.
Use STLport's Standard Library implementation instead of the default libCstd.
This library provides faster versions of some common functions, such as malloc/free and bcopy.
Specify the -xjobs option to set how many processes the compiler creates to complete its work. Currently, -xjobs works only with the -xipo option. When you specify -xjobs=n, the interprocedural optimizer uses n as the maximum number of code generator instances it can invoke to compile different files.
Specify the -xjobs option to set how many processes the compiler creates to complete its work. Currently, -xjobs works only with the -xipo option. When you specify -xjobs=n, the interprocedural optimizer uses n as the maximum number of code generator instances it can invoke to compile different files.
Specify the -xjobs option to set how many processes the compiler creates to complete its work. Currently, -xjobs works only with the -xipo option. When you specify -xjobs=n, the interprocedural optimizer uses n as the maximum number of code generator instances it can invoke to compile different files.
Specify the -xjobs option to set how many processes the compiler creates to complete its work. Currently, -xjobs works only with the -xipo option. When you specify -xjobs=n, the interprocedural optimizer uses n as the maximum number of code generator instances it can invoke to compile different files.
This section contains descriptions of flags that were included implicitly by other flags, but which do not have a permanent home at SPEC.
Allows the compiler to assume that your code does not rely on setting of the errno variable.
Selects faster (but nonstandard) handling of floating point arithmetic exceptions and gradual underflow. The spelling "-fns=yes" is equivalent to "-fns".
Controls simplifying assumptions for floating point arithmetic:
Evaluate float expressions as single precision.
Turns off all IEEE 754 trapping modes.
Cancels forcing expressions to have the precision of the result.
Allows the compiler to perform type-based alias analysis at the specified alias level:
Substitute intrinsic functions or inline system functions where profitable for performance.
Analyze loops for inter-iteration data dependencies, and do loop restructuring.
Use inline expansion for math library, libm.
Select the optimized math library.
Specify optimization level. Can be written either as -xOn or -On, where n indicates:
Allow the compiler to use the frame-pointer register (%ebp on IA32, %rbp on x64) as an unallocated callee-saves register.
Selects options for architecture, chip timing, and cache sizes. These can also be controlled separately, via -xarch, -xchip, and -xcache, respectively. A wide variety of targets can be selected, including ultra3, ultra3cu, ultra3i, ultra3iplus, ultra4, ultra4plus, ultraT1, ultraT2, ultraT2plus, T3, T4, T5, M5, sparc64vi, sparc64vii, sparc64viiplus, sparc64x. In each case, appropriate options are selected for architecture, chip timing, and cache size to match that target. If -xtarget=native is selected, options that are appropriate for the system where the compile is being done. The default is -xtarget=generic, which sets the parameters for the best performance over most 32-bit platform architectures. On Solaris SPARC systems, the default pointer size with -xtarget=native is 32-bit.
submit=echo 'pbind -b...' > dobmk; sh dobmk
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. If so, the specific command may be found in the config file; here
is a brief guide to understanding that command:
One or more of the following settings may have been applied to the testbed. 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.
autoup=<n>
When the file system flush daemon fsflush runs, it writes to disk all modified file buffers that are more
than n seconds old.
lpg_alloc_prefer=<n>
0 = the OS may allocate remote pages if the size requested is readily available in a remote locality group (default)
1 = Set lgroup page allocation to strongly prefer local pages.
maxusers=<n>
To increase the number of user processes derived by the system
ncsize=<n>
Defines the number of entries in the directory name look-up cache (DNLC). This parameter is used by UFS, NFS, and
ZFS to cache elements of path names that have been resolved.
rlim_fd_cur=<n>
Defines the soft limit on file descriptors that a single process can have open.
tune_t_fsflushr=<n>
Controls the number of seconds between runs of the file system flush daemon, fsflush.
zfs:zfs_arc_min=<n>
Controls the minimum amount of memory used in bytes by ZFS for caching of file system buffers.
zfs:zfs_arc_max=<n>
Controls the maximum amount of memory used in bytes by ZFS for caching of file system buffers.
ZFS RAIDZ
In mirrored storage pool configuration, ZFS provides a RAID-Z configuration with either single or double parity fault tolerance. Single-parity RAID-Z is similar to RAID-5. Double-parity RAID-Z is similar to RAID-6.
OMP_DYNAMIC=<TRUE|FALSE>
Enables (TRUE) or disables (FALSE) dynamic adjustment of the number of threads available for execution of parallel
regions. The default is TRUE.
MTEXCLUSIVE=Y
By default, libmtmalloc allocates 2*NCPUS buckets from which allocations occur. Threads share buckets based on their thread ID. If MTEXCLUSIVE is invoked, then 4*NCPUS buckets are used. Threads with thread id less than 2*NCPUS receive an exclusive bucket and thus do not need to use locks. Allocation perfor- mance for these buckets may be dramatically increased. One enabled MTEXCLUSIVE can not be dis- abled. This feature can be enabled by setting the MTMALLOC_OPTION MTEXCLUSIVE to "Y" or "y" or any- thing beginning with "y". Alternatively it can be enabled by a call to mallocctl(3MALLOC).
OMP_NESTED=<TRUE|FALSE>
Enables or disables nested parallelism. Value is either TRUE or FALSE. The default is FALSE.
OMP_NUM_THREADS=<n>
If programs have been compiled with -xautopar, this environment variable can be set to the number of
processors that programs should use.
PARALLEL=<n>
If programs have been compiled with -xautopar, this environment variable can be set to the number of
processors that programs should use.
STACKSIZE=<n>
Set the size of the stack (temporary storage area) for each slave thread of a multithreaded program.
SUNW_MP_PROCBIND=<n>
This environment variable can be used to bind the LWPs (lightweight processes) managed by the microtasking library,
libmtsk, to processors. Performance can be enhanced with processor binding, but performance degradation will occur if
multiple LWPs are bound to the same processor.
The value for SUNW_MP_PROCBIND can be:
Integers in the above denote the "logical" processor IDs to which the LWPs are to be bound. Logical processor IDs are
consecutive integers that start with 0, and may or may not be identical to the actual processsor IDs. If n processors are
available online, then their logical processor IDs are 0, 1, ..., n-1.
By default, LWPs are not bound to processors. It is left up to the operating system, Solaris, to schedule LWPs onto processors.
If the value "TRUE" is used, the operating system will bind processes to processors, starting with processor 0.
If the value "SCATTER" is used, then the threads will be bound to virtual processors that are far apart.
SUNW_MP_THR_IDLE=SPIN
Controls the end-of-task status of each helper thread executing the parallel part of a program. You can set the value
to spin, sleep ns, or sleep nms. The default is SPIN -- the thread spins (or busy-waits) after completing a parallel task
until a new parallel task arrives. You can set the value to be one of the following: SLEEP( times), SLEEP(timems), SLEEP( timemc),
where time is an integer that specifies an amount of time, and s, ms, and mc specify the time unit (seconds, milli-seconds,
and micro-seconds, respectively).
ulimit -s <n>
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.2.
Report generated on Thu Jul 24 15:25:09 2014 by SPEC CPU2006 flags formatter v6906.