<?xml version="1.0"?>
<!DOCTYPE flagsdescription
    SYSTEM "http://www.spec.org/dtd/cpuflags2.dtd"
>

<!-- The lines above are NOT optional.  If you're adept at reading DTDs,
     the one that this file conforms to is at the URL listed above.  
     
     But most humans writing a flags file will want to have it automatically 
     checked using a validating parser such as RXP (available at
     http://www.ltg.ed.ac.uk/~richard/rxp.html), or use one of the on-line
     parsers:
       http://www.stg.brown.edu/service/xmlvalid/
       http://www.cogsci.ed.ac.uk/~richard/xml-check.html
     
     The parser used by the CPU tools is _not_ a validating parser, so it
     may be possible to sneak things by it that would not pass the checkers
     above.  However, if the checkers above say that your file is clean, it's
     clean.

     Flag files submitted to SPEC _will_ be checked by a validating parser.
     Invalid or not-well-formed flag files will be rejected.

     This file is
       Copyright (C) 2006 Standard Performance Evaluation Corporation
       All Rights Reserved
     
     This file may be freely modified and redistributed, provided that the
     copyright notice above and this notice remain unaltered.

     $Id: flags-simple.xml 4007 2006-03-17 11:34:42Z cloyce $

     **********************************************************************
     **********************************************************************
     Unless otherwise explicitly noted, all references to "section n.nn"
     refer to flag_description.html, available at

     http://www.spec.org/cpu2006/docs/flag_description.html
     **********************************************************************
     **********************************************************************

	NOTES:

		
-->
<flagsdescription>

<filename>IBM-XL</filename>

<title>IBM XL Compiler Flags and Common Unix Commands and Environment Settings</title>

<style>
<![CDATA[
body { background: white; }
]]>
</style>

<!-- =====================================================================
  The <header> section is also entirely optional.  If it is provided, and
  no class is specified, then it will be inserted verbatim at the top
  of the flags dump.

  If a class is specified, that text will be inserted verbatim before flags
  of that class.  
  
  As the contents should be HTML, it will save lots of time to just enclose
  the whole thing in a CDATA section.  Section 2.3.1 again.
     ===================================================================-->
<header>
<![CDATA[
<p>Compilers: IBM XL C/C++ Enterprise Edition Version 8.0 for AIX</p>
<p>Compilers: IBM XL Fortran Enterprise Edition Version 10.1 for AIX</p>
<p>Compilers: IBM XL C/C++ Enterprise Edition Version 9.0 for AIX</p>
<p>Compilers: IBM XL Fortran Enterprise Edition Version 11.1 for AIX</p>
<p>Compilers: IBM XL C/C++ Version 10.1 for AIX</p>
<p>Compilers: IBM XL Fortran Version 12.1 for AIX</p>
<p>Compilers: IBM XL C/C++ Version 11.1 for AIX</p>
<p>Compilers: IBM XL Fortran Version 13.1 for AIX</p>
<p>Last updated: 20-Apr-2011</p> ]]>
</header>

<!-- =====================================================================
  Information about the meaning of boot-time settings, BIOS options,
  kernel tuning, and so forth can go in the 'platform_settings' section.

  They'll be appended to the end of both the flags dump and per-result flag report.

  As the contents should be HTML, it will save lots of time to just enclose
  the whole thing in a CDATA section.  Section 2.3.1 again.
     ===================================================================-->


<!--
  -
  -	Compiler declarations.
  -
  -
  -->

<flag
      name="xlc"
      class="compiler"
      regexp="(\S*\/)?xlc(_r)?\b">
<example>
xlc,
xlc_r
</example>
<![CDATA[
<p>
Invoke the IBM XL C compiler. 32-bit binaries are produced by default.
</p>
]]>
</flag>


<flag
      name="xlC"
      class="compiler"
      regexp="(\S*\/)?xlC(_r)?\b">
<example>
xlC,
xlC_r
</example>
<![CDATA[
<p>
Invoke the IBM XL C++ compiler. 32-bit binaries are produced by default.
</p>
]]>
</flag>


<flag
      name="xlf95"
      class="compiler"
      regexp="(\S*\/)?xlf95(_r)?\b">
<example>
xlf95,
xlf95_r
</example>
<![CDATA[
<p>
Invoke the IBM XL Fortran compiler. 32-bit binaries are produced by default.
</p>
]]>
</flag>


<!--
  -
  -	Aggregated optimization flags.
  -
  -->

<flag name="F-O5"
      class="optimization"
      regexp="-O5\b">
<example>
-O5
</example>
<![CDATA[
<p>
Perform optimizations for maximum performance. This includes maximum
interprocedural analysis on all of the objects presented on the "link" 
step. This level of optimization will increase the compiler's memory
usage and compile time requirements. -O5 Provides all of the functionality
of the -O4 option, but also provides the functionality of the
-qipa=level=2 option.
</p>

-O5 is equivalent to the following flags
<ul>
  <li> <tt>-O4</tt> </li>
  <li> <tt>-qipa=level=2</tt> </li>
</ul>
]]>
<include flag="F-O4" />
<include flag="F-qipa:level" flagtext="-qipa=level=2" />
</flag>


<flag name="F-O4"
      class="optimization"
      regexp="-O4\b">
<example>
-O4
</example>
<![CDATA[
<p>
Perform optimizations for maximum performance. This includes
interprocedural analysis on all of the objects presented on the "link" 
step.
</p>

-O4 is equivalent to the following flags
<ul>
  <li> <tt>-O3</tt> </li>
  <li> <tt>-qipa=level=1</tt> </li>
  <li> <tt>-qarch=auto</tt> </li>
  <li> <tt>-qtune=auto</tt> </li>
</ul>
]]>
<include flag="F-O3" />
<include flag="F-qipa:level" flagtext="-qipa=level=1" />
<include flag="F-qarch" flagtext="-qarch=auto" />
<include flag="F-qtune" flagtext="-qtune=auto" />
</flag>


<flag name="F-O3"
      class="optimization"
      regexp="-O3\b">
<example>-O3</example>
<![CDATA[
-O3 Performs additional optimizations that are memory intensive, compile-time
intensive, and may change the semantics of the program slightly, unless
-qstrict is specified. We recommend these optimizations when the desire for
run-time speed improvements outweighs the concern for limiting compile-time
resources. The optimizations provided include:
<ul>
  <li> In-depth memory access analysis </li>
  <li> Better loop scheduling </li>
  <li> High-order loop analysis and transformations (-qhot=level=0) </li>
  <li> Inlining of small procedures within a compilation unit by default </li>
  <li> Eliminating implicit compile-time memory usage limits </li>
  <li> Widening, which merges adjacent load/stores and other operations </li>
  <li> Pointer aliasing improvements to enhance other optimizations </li>
</ul>

-O3 is equivalent to the following flags
<ul>
  <li> <tt>-O2</tt> </li>
  <li> <tt>-qhot=level=0</tt> </li>
</ul>
]]>
<include flag="F-O2" />
<include flag="F-qhot" flagtext="-qhot=level=0" />
</flag>


<flag name="F-O2"
      class="optimization"
      regexp="-O2\b">
<example>-O2</example>
<![CDATA[
-O2 Performs a set of optimizations that are intended to offer improved
performance without an unreasonable increase in time or storage that is
required for compilation including:
<ul>
  <li> Eliminates redundant code </li>
  <li> Basic loop optimization </li>
  <li> Can structure code to take advantage of -qarch and -qtune settings </li>
</ul>
]]>
<include flag="F-O" />
</flag>


<flag name="F-O"
      class="optimization"
      regexp="-O\b">
<example>-O</example>
<![CDATA[
-O enables the level of optimization that represents the best tradeoff
between compilation speed and run-time performance.
If you need a specific level of optimization, specify the appropriate
numeric value. 
Currently, -O is equivalent to -O2.
]]>
<include flag="F-O2" />
</flag>



<!--
  -
  -	Optimization flags: individual methods.
  -
  -->

<flag name="F-qarch"
      class="optimization"
      regexp="-qarch=(\S+)\b">
<example>-qarch</example>
<![CDATA[
<p>
Produces object code containing instructions that will run on the
specified processors. "auto" selects the processor the compile
is being done on. "pwr5x" is the POWER5+ processor.
</p>

<p>Supported values for this flag are</p>
<ul>
  <li>auto	- Use the processor on which the program is compiled.</li>
  <li>pwr7	- The POWER7 processor based systems.</li>
  <li>pwr6e	- The POWER6 processor in "Enhanced" mode based systems.</li>
  <li>pwr6	- The POWER6 processor based systems.</li>
  <li>pwr5x	- The POWER5+ processor based systems.</li>
  <li>pwr5	- The POWER5 processor based systems.</li>
  <li>pwr4	- The POWER4 processor based systems.</li>
  <li>ppc970	- The PPC970 processor based systems.</li>
</ul>
]]>
</flag>


<flag name="F-qtune"
      class="optimization"
      regexp="-qtune=(\S+)\b">
<example>-qtune</example>
<![CDATA[
<p>
Specifies the system architecture for which the executable program
is optimized.  This includes instruction scheduling and cache setting.
</p>

<p>The supported values for <tt>suboption</tt> are</p>
<ul>
  <li>auto	- Use the processor on which the program is compiled.</li>
  <li>pwr7	- The POWER7 processor based systems.</li>
  <li>pwr6e	- The POWER6 processor in "Enhanced" mode based systems.</li>
  <li>pwr6	- The POWER6 processor based systems.</li>
  <li>pwr5x	- The POWER5+ processor based systems.</li>
  <li>pwr5	- The POWER5 processor based systems.</li>
  <li>pwr4	- The POWER4 processor based systems.</li>
  <li>ppc970	- The PPC970 processor based systems.</li>
</ul>
]]>
</flag>


<flag name="F-qnoinline"
      class="optimization"
      regexp="-qnoinline\b">
This option specifies that no functions are to be inlined.
</flag>


<flag name="F-qinlglue"
      class="optimization"
      regexp="-qinlglue\b">
This option inlines glue code that optimizes external
function calls when compiling.
</flag>


<flag name="F-qhot"
      class="optimization"
      regexp="-qhot(=arraypad|=simd|=vector|=level=[01])?\b">
<example>
-qhot,
-qhot=level=1,
-qhot=simd
</example>
<![CDATA[
<p>
Performs high-order transformations on loops during optimization.
The supported values for <tt>suboption</tt> are:
</p>
<ul>
   <li>arraypad - The compiler will pad any arrays where it infers that there may be a benefit.</li>
   <li>level=0  - The compiler performs a limited set of high-order loop transformations.</li>
   <li>level=1  - The compiler performs its full set of high-order loop transformations.</li>
   <li>simd     - Replaces certain instruction sequences with vector instructions.</li>
   <li>vector   - Replaces certain instruction sequences with calls to the MASS library.</li>
</ul>
<p>
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.
</p>
]]>
</flag>


<flag name="F-qipa:level"
      class="optimization"
      regexp="-qipa=level=[012]\b">
<example>
-qipa=level
</example>
<![CDATA[
<p>
Enhances optimization by doing detailed analysis across procedures
(interprocedural analysis or IPA). 
The <tt>level</tt> determines the amount of interprocedural analysis
and optimization that is performed.
</p>

<p>
  <tt>level=0</tt> Does only minimal interprocedural analysis and optimization
</p>

<p>
  <tt>level=1</tt> turns on inlining , limited alias analysis, and limited
  call-site tailoring
</p>

<p>
  <tt>level=2</tt> turns on full interprocedural data flow and alias analysis
</p>
]]>
</flag>


<flag name="F-qnoipa"
      class="optimization"
      regexp="-qnoipa\b">
<![CDATA[
<p>
Suppresses interprocedural analysis (IPA), which is enabled by default
at optimization levels -O4 and -O5.
</p>
]]>
</flag>


<flag name="F-qpdf1"
      class="optimization"
      regexp="-qpdf1\b">
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.
</flag>


<flag name="F-qpdf2"
      class="optimization"
      regexp="-qpdf2\b">
The option used in the second pass of a profile directed feedback compile
that causes PDF information to be utilized during optimization.
</flag>


<flag name="F-qfdpr"
      class="optimization"
      regexp="-qfdpr\b">
The compiler generates additional symbol information for use by the AIX "fdpr"
binary optimization tool.
</flag>


<flag name="F-qxlf90"
      class="optimization"
      regexp="-qxlf90=(signedzero|nosignedzero|autodealloc|noautodealloc|oldpad|nooldpad|)\b">
<example>
-qxlf90=nosignedzero
</example>
<![CDATA[
<pre>
         -qxlf90=&lt;suboption&gt;
                Determines whether the compiler provides the
                Fortran 90 or the Fortran 95 level of support for
                certain aspects of the language. &lt;suboption&gt; can be
                one of the following:

                signedzero | nosignedzero
                     Determines how the SIGN(A,B) function handles
                     signed real 0.0. In addition, determines
                     whether negative internal values will be
                     prefixed with a minus when formatted output
                     would produce a negative sign zero.
                autodealloc | noautodealloc
                     Determines whether the compiler deallocates
                     allocatable arrays that are declared locally
                     without either the SAVE or the STATIC
                     attribute and have a status of currently
                     allocated when the subprogram terminates.
                oldpad | nooldpad
                     When the PAD=specifier is present in the
                     INQUIRE statement, specifying -qxlf90=nooldpad
                     returns UNDEFINED when there is no connection,
                     or when the connection is for unformatted I/O.
                     This behavior conforms with the Fortran 95
                     standard and above. Specifying -qxlf90=oldpad
                     preserves the Fortran 90 behavior.

                Default:
                     o signedzero, autodealloc and nooldpad for the
                     xlf95, xlf95_r, xlf95_r7 and f95 invocation
                     commands.
                     o nosignedzero, noautodealloc and oldpad for
                     all other invocation commands.
</pre>
]]>
</flag>



<!--
  -
  -	Optimization flags: memory allocation.
  -
  -->

<flag name="F-q64"
      class="optimization"
      regexp="-q64\b">
<example>
-q64
</example>
Generates 64 bit ABI binaries. The default is to generate 32 bit ABI binaries.
</flag>


<flag name="F-qlargepage"
      class="optimization"
      regexp="-qlargepage\b">
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.
</flag>


<flag name="F-qalloca"
      class="optimization"
      regexp="-qalloca\b">
Indicates that the compiler understands how to do alloca().
</flag>


<flag name="F-qsmallstack:dynlenonheap"
      class="optimization"
      regexp="-qsmallstack=dynlenonheap\b">
Causes the Fortran compiler to allocate dynamic arrays on the heap instead
of the stack
</flag>


<flag name="F-qsave"
      class="optimization"
      regexp="-qsave\b">
Specifies that all local variables be treated as STATIC.
</flag>



<!--
  -
  -	Optimization flags: vector calculations.
  -
  -->

<flag name="F-qsimd"
      class="optimization"
      regexp="-q(no)?simd\b">
<example>
-qsimd
-qnosimd
</example>
Enables the generation of vector instructions for processors
that support them.
</flag>

<flag name="F-qenablevmx"
      class="optimization"
      regexp="-q(no)?enablevmx\b">
<example>
-qenablevmx
-qnoenablevmx
</example>
Enables the generation of vector instructions for processors
that support them.
</flag>


<flag name="F-qvecnvol"
      class="optimization"
      regexp="-qvecnvol\b">
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.
</flag>



<!--
  -
  -	Optimization flags: support libraries.
  -
  -->

<flag name="F-lmass"
      class="optimization"
      regexp="-lmass\b">
Link the mathematical acceleration subsystem libraries (MASS),
which contain libraries of tuned mathematical intrinsic
functions.
</flag>


<flag name="F-lessl"
      class="optimization"
      regexp="-lessl\b">
Link the Engineering and Scientific Subroutine Library (ESSL).
</flag>


<flag name="F-qessl"
      class="optimization"
      regexp="-qessl\b">
Specifies that, if either -lessl or -lesslsmp are also
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.
</flag>


<!--
  -
  -	Mixed: Semantic compliance issues.
  -
  -->

<flag name="F-qrtti:all"
      class="optimization"
      regexp="-qrtti=all\b">
Cause the C++ compiler to generate Run Time Type Identification code
</flag>


<flag name="F-qchars:signed"
      class="portability"
      regexp="-qchars=signed\b">
Causes the compiler to treat "char" variables as signed instead of the
default of unsigned.
</flag>


<!--
  -
  -	Portability flags: syntactic compliance.
  -
  -->

<flag name="F-qfixed"
      class="portability"
      regexp="-qfixed\b">
Indicates that the input fortran source program is in fixed form.
</flag>


<flag name="F-qextname"
      class="portability"
      regexp="-qextname\b">
Adds an underscore to global entities to match the C compiler ABI
</flag>


<flag name="F-qcpluscmt"
      class="portability"
      regexp="-qcpluscmt\b">
<example>
-qcpluscmt
</example>
<![CDATA[
<p>
 Permits the usage of "//" to introduce a comment
 that lasts until the end of the current source
 line, as in C++.
</p>
]]>
</flag>


<!--
  -
  -	Other flags: optimizations and non-compliant code.
  -
  -->

<flag name="F-qalias"
      class="optimization"
      regexp="-qalias=(noansi|nostd)\b">
<example>
-qalias=noansi,
-qalias=nostd
</example>
<![CDATA[
<pre>
 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 (see Compiler Reference
   for more information). If so, specify nostd. 
</pre>
]]>
</flag>


<flag name="F-qalign"
      class="optimization"
      regexp="-qalign=(\S+)\b">
<example>
-qalign=natural
</example>
<![CDATA[
<pre>
           Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment options are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules.  This suboption is valid only for 32-
                     bit compilations.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules.  This suboption is valid only for 32-
                     bit compilations.  The mac68k option is the
                     same as twobyte.

                The default is -qalign=full.
</pre>
]]>
</flag>


<flag name="F-qassert"
      class="optimization"
      regexp="-qassert=refalign\b">
<example>
-qassert=refalign
</example>
<![CDATA[
<pre>
 qassert=refalign | norefalign
   Specifies that all pointers inside the compilation
   unit only point to data that is naturally aligned
   according to the length of the pointer types.
</pre>
]]>
</flag>

<flag name="F-qprefetch"
      class="optimization"
      regexp="-qprefetch=aggressive\b">
<example>
-qprefetch=aggressive
</example>
<![CDATA[
<pre>
 qprefetch=aggressive
   Aggressively prefetch data
</pre>
]]>
</flag>

<flag name="F-qxflag:DSCRVAL"
      class="optimization"
      regexp="-qxflag=DSCRVAL=(\S+)\b">
<example>
-qxflag=DSCRVAL=31
</example>
<![CDATA[
<p>
 The <tt>xflag=DSCRVAL</tt> option in conjunction with the
   -qprefetch=aggressive option, causes the
   Data Streams Control Register to be set to the value
   specified when executing this program.
</p>
]]>
</flag>

<flag name="F-qrestrict"
      class="optimization"
      regexp="-qrestrict\b">
<example>
-qrestrict
</example>
<![CDATA[
<pre>
 qrestrict
   TBD
</pre>
]]>
</flag>

<flag name="F-qsmp:auto"
      class="optimization"
      parallel="yes"
      regexp="-qsmp=auto\b">
Causes the compiler to automatically generate parallel code using
OMP controls when possible.
</flag>


<flag name="F-qsmp:omp"
      class="optimization"
      parallel="yes"
      regexp="-qsmp=omp\b">
Tell the compiler that OMP controls are used to identify parallel code.
</flag>


<flag name="F-qstrict"
      class="optimization"
      regexp="-q(no)?strict\b">
<example>
-qstrict,
-qnostrict
</example>
<![CDATA[
<pre>
                Ensures that optimizations done by default at
                optimization levels -O3 and higher, and, optionally
                at -O2, do not alter the semantics of a program.

                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:

                     o Always -qstrict or -qstrict=all when the
                     -qnoopt or -O0 optimization level is in effect
                     o -qstrict or -qstrict=all is the default when
                     the -O2 or -O optimization level is in effect
                     o -qnostrict or -qstrict=none is the default
                     when -O3 or a higher optimization level is in
                     effect

                &lt;suboptions_list&gt; is a colon-separated list of one
                or more of the following:

                all | none
                     all disables all semantics-changing
                     transformations, including those controlled by
                     the ieeefp, order, library, precision, and
                     exceptions suboptions.  none enables these
                     transformations.
                precision | noprecision
                     precision disables all transformations that
                     are likely to affect floating-point precision,
                     including those controlled by the subnormals,
                     operationprecision, association,
                     reductionorder, and library suboptions.
                     noprecision enables these transformations.
                exceptions | noexceptions
                     exceptions disables all transformations likely
                     to affect exceptions or be affected by them,
                     including those controlled by the nans,
                     infinities, subnormals, guards, and library
                     suboptions. noexceptions enables these
                     transformations.
                ieeefp | noieeefp
                     ieeefp disables transformations that affect
                     IEEE floating-point compliance, including
                     those controlled by the nans, infinities,
                     subnormals, zerosigns, and operationprecision
                     suboptions. noieeefp enables these
                     transformations.
                nans | nonans
                     nans disables transformations that may produce
                     incorrect results in the presence of, or that
                     may incorrectly produce IEEE floating-point
                     signaling NaN (not-a-number) values. nonans
                     enables these transformations.
                infinities | noinfinities
                     infinities disables transformations that may
                     produce incorrect results in the presence of,
                     or that may incorrectly produce floating-point
                     infinities.  noinfinities enables these
                     transformations.
                subnormals | nosubnormals
                     subnormals disables transformations that may
                     produce incorrect results in the presence of,
                     or that may incorrectly produce IEEE
                     floating-point subnormals (formerly known as
                     denorms). nosubnormals enables these
                     transformations.
                zerosigns | nozerosigns
                     zerosigns disables transformations that may
                     affect or be affected by whether the sign of a
                     floating-point zero is correct. nozerosigns
                     enables these transformations.
                operationprecision | nooperationprecision
                     operationprecision disables transformations
                     that produce approximate results for
                     individual floating-point operations.
                     nooperationprecision enables these
                     transformations.
                order | noorder
                     order disables all code reordering between
                     multiple operations that may affect results or
                     exceptions, including those controlled by the
                     association, reductionorder, and guards
                     suboptions. noorder enables code reordering.
                association | noassociation
                     association disables reordering operations
                     within an expression. noassociation enables
                     reordering operations.
                reductionorder | noreductionorder
                     reductionorder disables parallelizing
                     floating-point reductions. noreductionorder
                     enables these reductions.
                guards | noguards
                     guards disables moving operations past guards
                     or calls which control whether the operation
                     should be executed or not. enables these
                     moving operations.
                library | nolibrary
                     library disables transformations that affect
                     floating-point library functions. nolibrary
                     enables these transformations.

</pre>
]]>
</flag>


<flag name="F-qlanglvl:extc99"
      class="compiler"
      regexp="-qlanglvl=extc99\b">
Allows most any c dialect.
</flag>


<!--
  -
  -	Other flags: compiler resource consumption.
  -
  -->

<flag name="F-qipa:inline"
      class="optimization"
      regexp="-qipa=inline=(\S+)\b">
<example>
-qipa=inline=limit=1000
-qipa=inline=threshold=100
</example>
<![CDATA[
<p>
 The <tt>inline</tt> suboption  specifies the threshold and
 limit of inlined functions
</p>
]]>
</flag>

<flag name="F-qipa:noobject"
      class="other"
      regexp="-qipa=noobject\b">
<example>
-qipa=noobject
</example>
<![CDATA[
<p>
 Specifies whether to include standard object code in the object files.
 The <tt>noobject</tt> 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.
</p>
]]>
</flag>

<flag name="F-qipa:partition"
      class="optimization"
      regexp="-qipa=partition=large\b">
<example>
-qipa=partition=large
</example>
<![CDATA[
<p>
 The <tt>partition</tt> 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.
</p>
]]>
</flag>


<flag name="F-qipa:threads"
      class="optimization"
      regexp="-qipa=threads(=\d+)?\b">
<example>
-qipa=threads
</example>
<![CDATA[
<p>
 The <tt>threads</tt> suboption allows the IPA optimizer to run portions
 of the optimization process in parallel threads, which can speed up the
 compilation process on multi-processor systems. All the available
 threads, or the number specified by N, may be used. N must be a positive
 integer. Specifying <tt>nothreads</tt> 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.
</p>
]]>
</flag>


<flag name="F-qspillsize"
      class="other"
      regexp="-qspillsize=\d+\b">
<example>
-qspillsize=512,
-qspillsize=32648
</example>
<![CDATA[
<p>
Specifies the size of the compiler's internal program storage areas, in bytes.
</p>
]]>
</flag>



<!--
  -
  -	Other flags: error & warning messages.
  -
  -->

<flag name="F-qdebug:except"
      class="other"
      regexp="-qdebug=except\b">
Causes the compiler to output a traceback if it abends.
</flag>


<flag name="F-qsuppress"
      class="other"
      regexp="-qsuppress=([^:\s]+):(\S+)">
<example>-qsuppress=msg1:msg2</example>
<include text="-qsuppress=$2" />
<include text="-qsuppress=$1" />
<display enable="0" />
</flag>


<flag name="F-qsuppress:"
      class="other"
      regexp="-qsuppress=([^:\s]+)\b">
<example>
-qsuppress=1500-036,
-qsuppress=cmpmsg
</example>
Suppresses the message with the message number specified.
</flag>


<flag name="F-w"
      class="other"
      regexp="-w\b">
Suppresses informational, language-level, and warning messages. This option sets
-qflag=e:e.
</flag>


<!--
  -
  - Other flags: instrumentation & debugging.
  -
  -->

</flagsdescription>

