Compilers: IBM XL C/C++ Version 13.1.5 for Linux
Compilers: IBM XL Fortran Version 15.1.5 for Linux
Operating systems: Red Hat Enterprise Linux Server release 7
Last updated: $LastChangedDate: 2017-12-19 12:35:29 -0400 (Tue, 19 Dec 2017) $ revision $LastChangedRevision: 003 $
Selecting one of the following will take you directly to that section:
Determines substitute path names for XL Fortran executables such as the compiler, assembler, linker, and preprocessor. It can be used in combination with the -t option, which determines which of these components are affected by -B. Example : -B/opt/at10.0/share/libhugetlbfs/
Macro to have compiler always inline externs if specified.
Pass the --hugetlbfs-align flag to the linker so that we can control (by environment variable HUGETLB_ELFMAP) which program segments are placed in hugepages.
Pass the --hugetlbfs-link=BDT flag to the linker so that the text, initialized data, and BSS segments of the application are backed by hugepages.
Link the Engineering and Scientific Subroutine Library (ESSL).
Link with libhugetlbfs.so. This enables heap to be backed by the 16 Megabyte pages.
Link the mathematical acceleration subsystem libraries (MASS), which contain libraries of tuned mathematical intrinsic functions.
Link with tcmalloc's library for Linux on POWER. This is a library that optimizes calls to new, delete, malloc and free.
Instructs the linker to include libdl.a to enable dynamic linking loader. Links "/usr/lib/libdl.a" library.
Pass the -q flag to the linker causing the final executable to have the relocation information.
Instructs the linker to allow multiple definitions and the first definition will be used. Normally when a symbol is defined multiple times, the linker will report a fatal error.
Turn off the effect of the --whole-archive flag.
Instructs the linker to include every object file in the specified library, rather than searching the library for the required object files. Example : "-Wl,--wholearchive /usr/lib/libhugetlbfs.a"
Link with the Apache C++ Standard Library ("stdcxx"). "libstd8d.so" is a 32-bit shared library with optimization enabled.
Adds the directory for the Apache C++ Standard Library to the search path at link time.
The optimizations provided include:
`-O3 is equivalent to the following flags :
-O4 is equivalent to the following flags:
-O5 is equivalent to the following flags :
Generates 64-bit ABI binaries. The default is to generate 64-bit ABI binaries on little-endian Linux.
-qalias=ansi | noansi :
If ansi is specified, type-based aliasing is used during optimization, which restricts the lvalues that can be safely used to access a data object. The default is ansi for the xlc, xlC, and c89 commands. This option has no effect unless you also specify the -O option.qalias=std |nostd :
Indicates whether the compilation units contain any non-standard aliasing. If so, specify nostd.Specifies what aggregate alignment rules the compiler uses for file compilation, where the alignment options are:
The default is -qalign=full.
Indicates that the compiler understands how to do alloca(). This flag is not supported on little-endian Linux.
Supported values for this flag are :
Enables the generation of vector instructions for processors that support them.
Tell the compiler that enum size is small.
Specifies that, if either -lessl or -lesslsmp is specified, then Engineering and Scientific Subroutine Library (ESSL) routines should be used in place of some Fortran 90 intrinsic procedures when there is a safe opportunity to do so.
The compiler generates additional symbol information for use by the "fdpr" binary optimization tool.
The supported values for suboption are :
Specifying -qhot without suboptions implies -qhot=nosimd, -qhot=noarraypad, -qhot=vector and -qhot=level=1. The -qhot option is also implied by -O4 and -O5 .
This option inlines glue code that optimizes external function calls when compiling.
The inline option specifies the threshold and limit of inlined functions. Example : -qinline=40.
The inline suboption specifies the threshold and limit of inlined functions. Examples : -qipa=inline=limit=1000 and -qipa=inline=threshold=100
Enhances optimization by doing detailed analysis across procedures (interprocedural analysis or IPA). The level determines the amount of interprocedural analysis and optimization that is performed.
The partition suboption specifies the size of the program sections that are analysed together. Larger partitons may produce better analysis but require more storage. Default is medium.
Specifying nothreads does not run any parallel threads; this is equivalent to running one serial thread. This option does not affect the code in the final binary created.
Indicates that a program, designed to execute in a large page memory environment, can take advantage. of large 16 MB pages provided on POWER4 and higher based systems. This flag is not supported on little-endian Linux.
This option specifies that no functions are to be inlined.
Disables the generation of vector instructions.
Suppresses interprocedural analysis (IPA), which is enabled by default at optimization levels -O4 and -O5.
The noprefetch option will not add any prefetch instructions automatically.
Do not use the XL compiler thread information.
The option used in the first pass of a profile directed feedback compile that causes pdf information to be generated. The profile directed feedback optimization gathers data on both execution path and data values. It does not use hardware counters, nor gather any data other than path and data values for PDF specific optimizations.
The option used in the second pass of a profile directed feedback compile that causes PDF information to be utilized during optimization.
Inserts prefetch instructions automatically where there are opportunities to improve code performance.
Example : -qprefetch=dscr=42
Adds the restrict type qualifier to the pointer parameters within all functions without modifying the source file.
Cause the C++ compiler to generate Run Time Type Identification code
Specifies that all local variables be treated as STATIC.
Causes the Fortran compiler to allocate dynamic arrays on the heap instead of the stack.
Causes the compiler to automatically generate parallel code using OMP controls when possible.
Tell the compiler that OMP controls are used to identify parallel code.
Specifies the size of the register allocation spill area in bytes.
The -qstrict=all, -qstrict=precision, -qstrict=exceptions, -qstrict=ieeefp, and -qstrict=order suboptions and their negative forms are group suboptions that affect multiple, individual suboptions. Group suboptions act as if either the positive or the no form of every suboption of the group is specified.
Default:
The supported values for suboption are :
Specifies whether to use volatile or non-volatile vector registers. Volatile vector registers are registers whose value is not preserved across function calls so the compiler will not depend on values in them across function calls.
suboption can be one of the following :
Specifies library search directory for the Apache C++ Standard Library for use by the runtime linker. The information is recorded in the object file and passed to the runtime linker.
Parameter | Description | Executable name |
---|---|---|
a | Assembler | as |
b | Low-level optimizer | xlfcode |
c | Compiler front end | xlfentry |
d | Disassembler | dis |
F | C preprocessor | cpp |
h | Array language optimizer | xlfhot |
I | High-level optimizer, compile step | ipa |
l | Linker | ld |
z | Binder | bolt |
-qchars=signed : Causes the compiler to treat the type "char" as signed instead of the default of unsigned.
-qchars=unsigned : Causes the compiler to treat the type "char" as unsigned. This is the default.
Note: this particular portability flag is included for 526.blender_r per the recommendation in its documentation - see http://www.spec.org/cpu2017/Docs/benchmarks/526.blender_r.html.Permits the usage of "//" to introduce a comment that lasts until the end of the current source line, as in C++.
Adds an underscore to global entities to match the C compiler ABI
Indicates that the input fortran source program is in fixed form.
Do not use the XL compiler compat macros.
<suboption> must be one of the following suboptions:
Default: -qufmt=le
32-bit binaries are produced by default on big-endian Linux. Only 64-bit compilation is supported on little-endian Linux. The xlc_r invocation is thread-safe version of xlc compiler. The xlc_at and xlc_r_at invocations link with the IBM Advanced Toolchain libraries.
32-bit binaries are produced by default on big-endian Linux. Only 64-bit compilation is supported on little-endian Linux. The xlC_r invocation is thread-safe version of xlC compiler. The xlC_at and xlC_r_at invocations link with the IBM Advanced Toolchain libraries.
32-bit binaries are produced by default on big-endian Linux. Only 64-bit compilation is supported on little-endian Linux. The xlf95_r invocation is thread-safe version of xlf95 compiler. The xlf95_at and xlf95_r_at invocations link with the IBM Advanced Toolchain libraries.
Compilation conforms to the ISO C99 standard and accepts implementation-specific language extensions.
Causes the compiler to output a traceback if it abends.
Specifies whether to include standard object code in the object files. The noobject suboption can substantially reduce overall compilation time, by not generating object code during the first IPA phase. This option does not affect the code in the final binary created.
Specifies the size of the compiler's internal program storage areas, in bytes. Example : -qspillsize=512.
Suppresses the message with the message number specified. Examples : -qsuppress=1500-036 and -qsuppress=cmpmsg.
Suppresses informational, language-level, and warning messages. This option sets -qflag=e:e.