ICC(1)                   Intel(R) C++ Compiler Options                  ICC(1)



NAME
       icc - invokes the Intel(R) C++ compiler



SYNOPSIS
       icc [  options ] file1 [ file2 ...]  where:

       options
              represents zero or more compiler options.

       filen  is  a  C/C++  source (.C .c .cc .cp .cpp .cxx .c++ .i), assembly
              (.s), object (.o), static library (.a), or other linkable  file.

       Note:  The  icpc command uses the same compiler options as the icc com-
       mand.  Invoking the compiler using icpc compiles .c, and  .i  files  as
       C++.   Invoking  the  compiler using icc compiles .c and .i files as C.
       Using icpc always links in C++ libraries.  Using icc only links in  C++
       libraries if C++ source is provided on the command line.


DESCRIPTION
       The  Intel(R) C++ Compiler is designed to process C and C++ programs on
       Intel architecture based systems.  You can preprocess, compile,  assem-
       ble, and link these programs.


       This  document  explains how information and instructions apply differ-
       ently to IA-32 applications,  Intel(R)  EM64T  applications,  and  Ita-
       nium(R)  architecture-based  applications.  If  a  description does not
       explicitly state a specific architecture, it is applicable to all.  See
       the Intel C++ Compiler user documentation for more complete information
       than is presented here.


       Most language features are available on all  supported  systems.   How-
       ever,  some  language features are only available on certain processors
       or a certain operating system.   Such  language  features  are  labeled
       within parenthses as follows:

       i32    Means the feature is available on IA-32-based systems.

       i32em  Means  the  feature  is  available  on  IA-32-based systems with
              Intel(R) Extended Memory 64 Technology (Intel(R) EM64T).

       i64    Means the feature is available on Itanium(R)-based systems.

       L*X    Means the feature is available on Linux* systems.

       M*X32  Means the feature is available on Intel(R)-based systems running
              Mac OS*.

       If a labeled feature is only available on certain processors or operat-
       ing systems, you will see the word ( only) within the label along  with
       the appropriate abbreviation(s).  If a labeled feature is not available
       on a certain processor or operating system, you will see the words (not
       on  )  within the label along with the appropriate abbreviation.  If no
       label appears, the feature is available on all supported systems.


   gcc* Interoperability
       C++ compilers are interoperable if  they  can  link  object  files  and
       libraries  generated  by  one  compiler with object files and libraries
       generated by the second compiler, and  the  resulting  executable  runs
       successfully.   The  Intel(R)  C++  Compiler  options  that affect gcc*
       interoperability include:

       ·   -cxxlib-<mode>

       ·   -gcc-name

       ·   -gcc-version

       ·   -fabi-version

       ·   -no-gcc (see gcc Predefined Macros for more information)

       ·   -[no-]gcc-extern-inline

       In the 9.1 compiler, there is improved compatibility with gcc regarding
       the  behavior  of extern inline functions.  Previously, by default, the
       C99 standard was followed by always creating a body for  extern  inline
       functions.   In 9.1, by default, no body is created unless the function
       cannot be inlined for some reason (for example, its  address  might  be
       taken).   If the C99 behavior, rather than the now default gcc behavior
       is desired, use the  -no-gcc-extern-inline option.

       The Intel(R) C++ Compiler is interoperable with GNU gcc* compiler  ver-
       sions  greater than or equal to 3.2.  See the Intel C++ Compiler User's
       Guide for more information.

OPTION SUMMARIES
   Option Alphabetic Summary
       All of the Intel C++ Compiler options are listed alphabetically in this
       section.   After  each  listing  is  a reference to the Functional area
       where a detailed description of the option appears.

       -A-               see Preprocessor Options
       -A<name>[<value(s)>]
                         see Preprocessor Options
       -[no-]alias-args  see Advanced Performance Options
       -[no]align        see Language Options
       -ansi             see Language Options
       -[no-]ansi-alias  see Advanced Performance Options
       -auto-ilp32       see Advanced Performance Options
       -ax{K|W|N|B|P|T}  see Performance Options, Optimization  Levels,
                         Automatic   Processor-specific   Optimization,
                         Vectorization Options
       -B<dir>           see Miscellaneous Options
       -c                see Output, Debug, and PCH Options
       -C                see Preprocessor Options
       -[no-]c99         see Language Options
       -[no-]clomp-sharable-info
                         see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -[no-]clomp-sharable-propagation
                         see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -[no-]cluster-openmp-profile
                         see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -[no-]cluster-openmp
                         see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -[no-]complex-limited-range
                         see Advanced Performance Options
       -create-pch <file>
                         see Output, Debug, and  PCH  Options;  Precom-
                         piled Headers
       -cxxlib-<mode>    see Linking or Linker Options
       -D<name>[=<value>]
                         see Preprocessor Options
       -[no-]debug [keyword]
                         see Output, Debug, and PCH Options
       -dD               see Preprocessor Options
       -dM               see Preprocessor Options
       -dN               see Preprocessor Options
       -dryrun           see Miscellaneous Options
       -dumpversion      see Miscellaneous Options
       -dynamic-linker<filename>
                         see Linking or Linker Options
       -dynamiclib       see Linking or Linker Options
       -E                see Preprocessor Options
       -EP               see Preprocessor Options
       -export           see Language Options
       -export-dir <dir> see Language Options
       -F<dir>           see Mac OS Options
       -fabi-version=<value>
                         see Miscellaneous Options
       -f[no-]alias      see Performance Options
       -fargument-[no-]alias
                         see Advanced Performance Options
       -fargument-noalias-global
                         see Advanced Performance Options
       -fast             see Performance Options, Optimization Levels
       -fcode-asm        see Output, Debug, and PCH Options
       -f[no-]common     see Miscellaneous Options
       -fdata-sections   see Performance Options
       -f[no-]exceptions see Performance Options
       -f[no-]fnalias    see Performance Options
       -ffunction-sections
                         see Performance Options
       -f[no-]inline     see Performance Options
       -f[no-]inline-functions
                         see Performance Options
       -finline-limit=<n>
                         see Performance Options
       -f[no-]math-errno see Miscellaneous Options
       -fminshared       see Miscellaneous Options
       -fno-builtin      see Miscellaneous Options
       -fno-builtin-<func>
                         see Performance Options, Miscellaneous Options
       -fno-gnu-keywords see Language Options
       -fno-implicit-inline-templates
                         see Language Options
       -fno-implicit-templates
                         see Language Options
       -f[no-]omit-frame-pointer
                         see Performance Options
       -f[no-]non-lvalue-assign
                         see Language Options
       -fno-operator-names
                         see Language Options
       -[no-]fnsplit     see Advanced Performance Options
       -fp               see Performance Options
       -fpack-struct     see Miscellaneous Options
       -fpascal-strings  see Mac OS Options
       -fpermissive      see Language Options
       -f[no-]pic        see Miscellaneous Options
       -f[no-]PIC        see Miscellaneous Options
       -fp-model <name>  see Advanced Performance Options
       -[no-]fp-port     see Performance Options
       -fpstkchk         see Performance Options
       -fr32             see Miscellaneous Options
       -f[no-]rtti       see Language Options
       -freg-struct-return
                         see Miscellaneous Options
       -fshort-enums     see Language Options
       -fsource-asm      see Output, Debug, and PCH Options
       -fstack-security-check
                         see Miscellaneous Options
       -fsyntax-only     see Language Options
       -ftemplate-depth-<n>
                         see Language Options
       -ftls-model=<model>
                         see Advanced Performance Options
       -ftrapuv          see Output, Debug, and PCH Options
       -[no-]ftz         see Advanced Performance Options
       -funroll-loops    see Advanced Performance Options
       -funsigned-bitfields
                         see Language Options
       -funsigned-char   see Language Options
       -f[no]verbose-asm see Output, Debug, and PCH Options
       -fvisibility=[extern|default|protected|hidden|internal]
                         see Miscellaneous Options
       -fvisibility-default=<file>
                         see Miscellaneous Options
       -fvisibility-extern=<file>
                         see Miscellaneous Options
       -fvisibility-hidden=<file>
                         see Miscellaneous Options
       -fvisibility-inlines-hidden
                         see Miscellaneous Options
       -fvisibility-internal=<file>
                         see Miscellaneous Options
       -fvisibility-protected=<file>
                         see Miscellaneous Options
       -g                see Output, Debug, and PCH Options
       -g0               see Output, Debug, and PCH Options
       -[no-]gcc-extern-inline
                         see Miscellaneous Options
       -gcc-name=<dir>   see Miscellaneous Options
       -gcc-version=<nnn>
                         see Miscellaneous Options
       -[no-]global-hoist
                         see Miscellaneous Options
       -H                see Preprocessor Options
       -help             see Miscellaneous Options
       -I<dir>           see Preprocessor Options
       -idirafter<dir>   see Preprocessor Options
       -i-dynamic        see Linking or Linker Options
       -imacros <file>   see Preprocessor Options
       -inline-debug-info
                         see Output, Debug, and PCH Options
       -inline-factor    see Advanced Performance Options
       -inline-forceinline
                         see Advanced Performance Options
       -inline-max-per-compile
                         see Advanced Performance Options
       -inline-max-per-routine
                         see Advanced Performance Options
       -inline-max-size  see Advanced Performance Options
       -inline-max-total-size
                         see Advanced Performance Options
       -inline-min-size  see Advanced Performance Options
       -ip               see Advanced Performance Options,  Interproce-
                         dural Optimizations (IPO)
       -[no-]IPF-fltacc  see Advanced Performance Options
       -IPF-flt-eval-method0
                         see Advanced Performance Options
       -[no-]IPF-fma     see Advanced Performance Options
       -[no-]IPF-fp-relaxed
                         see Advanced Performance Options
       -IPF-fp-speculation{fast|safe|strict|off}
                         see Advanced Performance Options
       -ip-no-inlining   see Advanced Performance Options
       -ip-no-pinlining  see Advanced Performance Options
       -ipo[value]       see  Advanced Performance Options, Interproce-
                         dural Optimizations (IPO)
       -ipo-c            see Advanced Performance Options,  Interproce-
                         dural Optimizations (IPO)
       -ipo-S            see  Advanced Performance Options, Interproce-
                         dural Optimizations (IPO)
       -ipo-separate     see Advanced Performance Options,  Interproce-
                         dural Optimizations (IPO)
       -iprefix <prefix> see Preprocessor Options
       -iquote<dir>      see Preprocessor Options
       -i-static         see Linking or Linker Options
       -isystem<dir>     see Preprocessor Options
       -ivdep-parallel   see Advanced Performance Options
       -iwithprefix <dir>
                         see Preprocessor Options
       -iwithprefixbefore <dir>
                         see Preprocessor Options
       -Kc++             see Language Options
       -kernel           see Miscellaneous Options
       -l<dir>           see Linking or Linker Options
       -L<dir>           see Linking or Linker Options
       -long_double      see Miscellaneous Options
       -M                see Preprocessor Options
       -malign-double    see Language Options
       -malign-mac68k    see Mac OS Options
       -malign-natural   see Mac OS Options
       -malign-power     see Mac OS Options
       -map-opts         see Output, Debug, and PCH Options
       -march={pentiumpro  |  pentiumii  | pentiumiii | pentium2 | pen-
       tium3 | pentium4}
                         see Performance Options
       -mcmodel=<mem_model>
                         see Linking or Linker Options
       -mcpu=<cpu>       see Performance Options
       -MD               see Preprocessor Options
       -mdynamic-no-pic  see Mac OS Options
       -MF<file>         see Preprocessor Options
       -mfixed-range=f12-f15,f32-f127
                         see Miscellaneous Options
       -MG               see Preprocessor Options
       -m[no-]ieee-fp    see Performance Options
       -MM               see Preprocessor Options
       -MMD              see Preprocessor Options
       -mno-serialize-volatile
                         see Advanced Performance Options
       -mp               see Performance Options
       -MP               see Preprocessor Options
       -mp1              see Performance Options
       -MQ<target>       see Preprocessor Options
       -m[no-]relax      see Linking or Linker Options
       -mserialize-volatile
                         see Advanced Performance Options
       -msse             see Performance Options
       -msse2            see Performance Options
       -msse3            see Performance Options
       -MT<target>       see Preprocessor Options
       -mtune=<cpu>      see Performance Options
       -[no-]multibyte-chars
                         see Miscellaneous Options
       -nobss-init       see Miscellaneous Options
       -no-cpprt         see Linking or Linker Options
       -nodefaultlibs    see Linking or Linker Options
       -no-gcc           see Preprocessor Options
       -nostartfiles     see Linking or Linker Options
       -nostdinc         see Preprocessor Options
       -nostdlib         see Linking or Linker Options
       -o<file>          see Output, Debug, and PCH Options
       -O                see Performance Options
       -O0               see Performance Options, Optimization Levels
       -O1               see Performance Options, Optimization Levels
       -O2               see Performance Options, Optimization Levels
       -O3               see Performance Options, Optimization Levels
       -Ob<n>            see Performance Options
       -openmp           see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -openmp-profile   see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -openmp-report{0|1|2}
                         see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -openmp-stubs     see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -opt-mem-bandwidth<n>
                         see Advanced Performance Options
       -opt-report       see Advanced Performance Options
       -opt-report-file<file>
                         see Advanced Performance Options
       -opt-report-help  see Advanced Performance Options
       -opt-report-level[{min|med|max}]
                         see Advanced Performance Options
       -opt-report-phase{ipo|hlo|ilo|ecg|omp|all}
                         see Advanced Performance Options, Paralleliza-
                         tion with OpenMP*
       -opt-report-routine<name>
                         see Advanced Performance Options
       -Os               see Performance Options
       -p                see Advanced Performance Options
       -P                see Preprocessor Options
       -parallel         see Advanced Performance Options, Auto  Paral-
                         lelization Options
       -par-report{0|1|2|3}
                         see  Advanced Performance Options, Auto Paral-
                         lelization Options
       -par-threshold[<n>]
                         see Advanced Performance Options, Auto  Paral-
                         lelization Options
       -pc{32|64|80}     see Performance Options
       -pch              see  Output,  Debug,  and PCH Options; Precom-
                         piled Headers
       -pch-dir <dir>    see Output, Debug, and  PCH  Options;  Precom-
                         piled Headers
       -[no-]prec-div    see Performance Options
       -[no-]prec-sqrt   see Performance Options
       -[no-]prefetch    see Advanced Performance Options
       -print-multi-lib  see Output, Debug, and PCH Options
       -prof-dir <dir>   see   Advanced   Performance   Options,   Pro-
                         file-guided Optimizations (PGO)
       -prof-file <file> see   Advanced   Performance   Options,   Pro-
                         file-guided Optimizations (PGO)
       -prof-gen[x]      see   Advanced   Performance   Options,   Pro-
                         file-guided Optimizations (PGO)
       -prof-gen-sampling
                         see   Advanced   Performance   Options,   Pro-
                         file-guided Optimizations (PGO)
       -prof-use         see   Advanced   Performance   Options,   Pro-
                         file-guided Optimizations (PGO)
       -Qinstall <dir>   see Component Control Options
       -Qlocation,<tool>,<path>
                         see Component Control Options
       -Qoption,<tool>,<optlist>
                         see Component Control Options
       -qp               see Advanced Performance Options
       -rcd              see Performance Options
       -reserve-kernel-regs
                         see Miscellaneous Options
       -[no]restrict     see Language Options
       -S                see Output, Debug, and PCH Options
       -shared           see Linking or Linker Options
       -shared-libcxa    see Linking or Linker Options
       -[no-]sox         see Miscellaneous Options
       -ssp              see Advanced Performance Options
       -static           see Linking or Linker Options
       -static-libcxa    see Linking or Linker Options
       -std=c99          see Language Options
       -strict-ansi      see Language Options
       -T <file>         see Linking or Linker Options
       -tcheck           see Advanced Performance Options
       -[no]traceback    see Compiler Diagnostics Options
       -u  <symbol>      see Linking or Linker Options
       -U<name>          see Preprocessor Options
       -unroll<n>        see Advanced Performance Options
       -unroll0          see Advanced Performance Options
       -use-asm          see Output, Debug, and PCH Options
       -use-msasm        see Output, Debug, and PCH Options
       -use-pch <file>   see Output, Debug, and  PCH  Options;  Precom-
                         piled Headers
       -V                see Miscellaneous Options
       -v                see Miscellaneous Options
       -vec-report[{0|1|2|3|4|5}]
                         see Advanced Performance Options
       --version         see Miscellaneous Options
       -w                see Compiler Diagnostics Options
       -w<n>             see Compiler Diagnostics Options
       -Wa<o1>[,<o2>,...]
                         see Linking or Linker Options
       -W[no-]abi        see Compiler Diagnostics Options
       -Wall             see Compiler Diagnostics Options
       -Wbrief           see Compiler Diagnostics Options
       -Wcheck           see Compiler Diagnostics Options
       -W[no-]comment[s] see Compiler Diagnostics Options
       -Wcontext-limit=<n>
                         see Compiler Diagnostics Options
       -wd<L1>[,<L2>,...]
                         see Compiler Diagnostics Options
       -W[no-]deprecated see Compiler Diagnostics Options
       -we<L1>[,<L2>,...]
                         see Compiler Diagnostics Options
       -Werror           see Compiler Diagnostics Options
       -Winline          see Compiler Diagnostics Options
       -Wl,<o1>[,<o2>,...]
                         see Linking or Linker Options
       -W[no-]main       see Compiler Diagnostics Options
       -W[no-]missing-prototypes
                         see Compiler Diagnostics Options
       -wn<n>            see Compiler Diagnostics Options
       -Wp64             see Compiler Diagnostics Options
       -Wp,<o1>[,<o2>,...]
                         see  Linking  or  Linker  Options, Precompiled
                         Headers
       -W[no-]pointer-arith
                         see Compiler Diagnostics Options
       -wr<L1>[,<L2>,...]
                         see Compiler Diagnostics Options
       -W[no-]return-type
                         see Compiler Diagnostics Options
       -W[no-]shadow     see Compiler Diagnostics Options
       -W[no-]uninitialized
                         see Compiler Diagnostics Options
       -W[no-]unknown-pragmas
                         see Compiler Diagnostics Options
       -W[no-]unused-function
                         see Compiler Diagnostics Options
       -ww<L1>[,<L2>,...]
                         see Compiler Diagnostics Options
       -X                see Preprocessor Options
       -x <type>         see Miscellaneous Options
       -x{K|W|N|B|P|T}   see Performance Options, Optimization  Levels,
                         Optimizing  Exclusively  for  Specific Proces-
                         sors, Vectorization Options
       -Xlinker <val>    see Linking or Linker Options
       -Zp[n]            see Language Options

   Option Functional Summary
       All the options listed in the following summary are described in
       more detail in the sections that follow.


       Performance Options
              -ax{K|W|N|B|P|T}   -f[no-]alias   -fast   -fdata-sections
              -f[no-]exceptions    -f[no-]fnalias   -ffunction-sections
              -f[no-]inline  -f[no-]inline-functions -finline-limit=<n>
              -fno-builtin-<func>    -f[no-]omit-frame-pointer      -fp
              -[no-]fp-port  -fpstkchk -march={pentiumpro | pentiumii |
              pentiumiii | pentium2 | pentium3 | pentium4}  -mcpu=<cpu>
              -m[no-]ieee-fp    -mp    -mp1    -msse    -msse2   -msse3
              -mtune=<cpu>   -O   -O0   -O1  -O2    -O3   -Ob<n>    -Os
              -pc{32|64|80}    -[no-]prec-div    -[no-]prec-sqrt   -rcd
              -x{K|W|N|B|P|T}

       Advanced Performance Options
              -[no-]alias-args       -[no-]ansi-alias       -auto-ilp32
              -[no-]clomp-sharable-info   -[no-]clomp-sharable-propaga-
              tion  -[no-]cluster-openmp-profile   -[no-]cluster-openmp
              -[no-]complex-limited-range  -fargument[no-]-alias  -far-
              gument-noalias-global   -[no-]fnsplit  -fp-model   <name>
              -ftls-model=<model>        -[no-]ftz       -funroll-loops
              -inline-factor  -inline-forceinline  -inline-max-per-com-
              pile       -inline-max-per-routine       -inline-max-size
              -inline-max-total-size       -inline-min-size         -ip
              -[no-]IPF-fltacc    -IPF-flt-eval-method0   -[no-]IPF-fma
              -[no-]IPF-fp-relaxed                     -IPF-fp-specula-
              tion{fast|safe|strict|off}   -ip-no-inlining  -ip-no-pin-
              lining   -ipo[value]    -ipo-c    -ipo-S    -ipo-separate
              -ivdep-parallel      -mno-serialize-volatile    -mserial-
              ize-volatile           -openmp            -openmp-profile
              -openmp-report{0|1|2}     -openmp-stubs    -opt-mem-band-
              width<n>       -opt-report         -opt-report-file<file>
              -opt-report-help         -opt-report-level[{min|med|max}]
              -opt-report-phaseipo|hlo|ilo|ecg|omp|all -opt-report-rou-
              tine<name>     -p      -parallel     -par-report{0|1|2|3}
              -par-threshold[<n>]    -[no-]prefetch   -prof-dir   <dir>
              -prof-file<file>      -prof-gen[x]     -prof-gen-sampling
              -prof-use   -qp   -ssp   -tcheck   -unroll<n>    -unroll0
              -vec-report[{0|1|2|3|4|5}]

       Output, Debug, and PCH Options
              -c   -create-pch <file>  -[no-]debug[keyword]  -fcode-asm
              -fsource-asm    -ftrapuv   -f[no]verbose-asm    -g    -g0
              -inline-debug-info      -map-opts      -o<file>      -pch
              -pch-dir<dir>  -print-multi-lib  -S  -use-asm  -use-msasm
              -use-pch<file>

       Preprocessor Options
              -A-   -A<name>[<value(s)>]   -C   -D<name>[=<value>]  -dD
              -dM  -dN    -E    -EP    -H    -I<dir>    -idirafter<dir>
              -imacros<file>   -iprefix<prefix>   -iquote<dir>   -isys-
              tem<dir>  -iwithprefix<dir>  -iwithprefixbefore<dir>   -M
              -MD  -MF<file>  -MG  -MM  -MMD  -MP -MQ<target>  -MT<tar-
              get>  -no-gcc  -nostdinc  -P  -U<name> -X

       Component Control Options
              -Qinstall<dir>       -Qlocation,<tool>,<path>       -Qop-
              tion,<tool>,<optlist>

       Language Options
              -[no]align   -ansi  -[no-]c99  -export  -export-dir <dir>
              -fno-gnu-keywords          -fno-implicit-inline-templates
              -fno-implicit-templates          -f[no-]non-lvalue-assign
              -fno-operator-names       -fpermissive        -f[no-]rtti
              -fshort-enums   -fsyntax-only -ftemplate-depth-<n>  -fun-
              signed-bitfields  -funsigned-char   -Kc++  -malign-double
              -[no]restrict  -std=c99  -strict-ansi  -Zp[n]

       Compiler Diagnostics Options
              -[no]traceback   -w   -w<n>   -W[no-]abi   -Wall  -Wbrief
              -Wcheck      -W[no-]comment[s]        -Wcontext-limit=<n>
              -wd<L1>[,<L2>,...]  -W[no-]deprecated  -we<L1>[,<L2>,...]
              -Werror  -Winline  -W[no-]main  -W[no-]missing-prototypes
              -wn<n>   -Wp64   -W[no-]pointer-arith  -wr<L1>[,<L2>,...]
              -W[no-]return-type   -W[no-]shadow   -W[no-]uninitialized
              -W[no-]unknown-pragmas             -W[no-]unused-function
              -ww<L1>[,<L2>,...]

       Miscellaneous Options
              -B<dir>   -dryrun   -dumpversion    -fabi-version=<value>
              -f[no-]common         -f[no-]math-errno       -fminshared
              -fno-builtin      -fno-builtin-<func>       -fpack-struct
              -f[no-]pic     -f[no-]PIC     -fr32   -freg-struct-return
              -fstack-security-check -fvisibility=[extern |  default  |
              protected     |    hidden    |    internal]    -fvisibil-
              ity-default=<file> -fvisibility-extern=<file>  -fvisibil-
              ity-hidden=<file>  -fvisibility-inlines-hidden -fvisibil-
              ity-internal=<file>         -fvisibility-protected=<file>
              -[no-]gcc-extern-inline     -gcc-name=<dir>     -gcc-ver-
              sion=<nnn> -[no-]global-hoist  -help -kernel   -long_dou-
              ble      -mfixed-range=f12-f15,f32-f127      -[no-]multi-
              byte-chars -nobss-init   -reserve-kernel-regs   -[no-]sox
              -V  -v  --version  -x<type>

       Linking or Linker Options
              -cxxlib-<mode>    -dynamic-linker<filename>   -dynamiclib
              -i-dynamic       -i-static        -L<dir>         -l<dir>
              -mcmodel<mem_model>  -m[no-]relax  -no-cpprt  -nodefault-
              libs -nostartfiles   -nostdlib   -shared   -shared-libcxa
              -static     -static-libcxa   -T   <file>    -u   <symbol>
              -Wa<o1>[,<o2>,...]                    -Wl,<o1>[,<o2>,...]
              -Wp,<o1>[,<o2>,...]  -Xlinker<val>

       Mac OS Options
              -F<dir>   -fpascal-strings  -malign-mac68k  -malign-natu-
              ral  -malign-power  -mdynamic-no-pic




OPTION DESCRIPTIONS
   Performance Options
       The performance options act using general criteria  to  optimize
       code.   The  optimizations  listed in this section are available
       for Intel architectures or  are  compatible  with  gcc  compiler
       options.


       -ax<codes> (i32, i32em only)
              Generates  code  for  Intel(R)  Core(TM)  Duo processors,
              Intel(R) Core(TM) Solo processors, Intel(R) Pentium(R)  4
              processors with Streaming SIMD Extensions 3, and compati-
              ble Intel processors with Streaming  SIMD  Extensions  3.
              Generate code specialized for processor extensions speci-
              fied by <codes> while also generating generic IA-32 code.
              <codes> includes one or more of the following characters:

              K -- Intel Pentium III processors  and  compatible  Intel
              processors

              W -- Intel Pentium 4 processors and compatible Intel pro-
              cessors

              N -- Intel Pentium 4 processors and compatible Intel pro-
              cessors.   Enables new optimizations in addition to Intel
              processor-specific optimizations.

              B -- Intel Pentium M processors and compatible Intel pro-
              cessors.   Enables new optimizations in addition to Intel
              processor-specific optimizations.

              P --  Intel(R) Core(TM) Duo, Intel(R) Core Solo(TM),  and
              Intel(R)  Pentium(R)  4  Processors  with  Streaming SIMD
              Extensions 3 (SSE3)  instruction  support.   Enables  new
              optimizations  in  addition  to  Intel processor-specific
              optimizations.

              T --  Intel(R) Core(TM)2 Duo, Intel(R) Core(TM)2 Extreme,
              and the Dual-Core Intel(R) Xeon(R) processor 5100 series.

              Note:  The  only  -ax  options  available   on   Intel(R)
              EM64T-based systems are -axW, -axP, and -axT.


              Note:  On  M*X32  systems,  P is the only valid processor
              value. On these systems, -axP is equivalent to -xP, which
              is the default and is always set.


       -f[no-]alias
              Assume [do not assume] aliasing in the program (DEFAULT =
              -falias).


       -fast  The -fast option maximizes speed across the  entire  pro-
              gram.   It sets command options that can improve run-time
              performance, as follows:

              i32, i32em: The -fast option turns on -O3, -ipo, -static,
              -no-prec-div,  and  -xP.   IA-32  programs  compiled with
              -fast will execute only on Intel(R) Pentium(R) 4  proces-
              sors  with  Streaming SIMD Extensions 3 (SSE3).  Programs
              compiled with  this  option  will  detect  non-compatible
              processors  and  generate  an error message during execu-
              tion.

              i64: The -fast option turns on -O3, -ipo, and -static.

              M*X32:  The  -fast  option  turns  on  -O3,  -ipo,  -mdy-
              namic-no-pic, and -no-prec-div.


       -fdata-sections
              Separate  functions  for  the  linker  (COMDAT).  Same as
              -ffunction-sections.


       -f[no-]exceptions
              The -f[no-]exceptions option turns off exception handling
              table  generation,  resulting in smaller code. Any use of
              exception handling constructs - try blocks, throw  state-
              ments will produce an error. Exception specifications are
              parsed but ignored. A preprocessor symbol __EXCEPTIONS is
              defined  when  this  option  is not used. It is undefined
              when this option is present.


       -f[no-]fnalias
              Assume [do not assume, but assume aliasing across  calls]
              aliasing within functions (DEFAULT = -ffnalias).


       -ffunction-sections
              Separate  functions  for  the  linker  (COMDAT).  Same as
              -fdata-sections.


       -f[no-]inline
              Enables [disables] inlining of  functions  declared  with
              the  __inline keyword. Also enables inlining according to
              the C++ language.  Same as -Ob1.


       -f[no-]inline-functions
              Inline [do not inline] certain interprocedural  optimiza-
              tions  for  single file compilation.  These optimizations
              are a subset of full intra-file interprocedural optimiza-
              tions.  Enables [does not enable] the compiler to perform
              inline function expansion for calls to functions  defined
              within the current source file


       -finline-limit=<n>
              Lets  you  specify  the  maximum size of a function to be
              inlined.


       -fno-builtin-<func>
              Disable the <func> intrinsic.


       -f[no-]omit-frame-pointer (i32, i32em only)
              The negative version is the same as -fp.


       -fp (i32, i32em only)
              Disable using EBP as general purpose register.


       -[no-]fp-port (i32, i32em only)
              Round floating-point results  at  assignments  and  casts
              (some speed impact).


       -fpstkchk (i32, i32em only)
              Generate  extra  code after every function call to assure
              that the FP stack is in the  expected  state.  Generally,
              when  the  FP stack overflows, a NaN value is put into FP
              calculations, and the program's results differ.  Unfortu-
              nately, the overflow point can be far away from the point
              of the actual bug.  The -fpstkchk option places code that
              would  access violate immediately after an incorrect call
              occurred, thus making it easier to locate these issues.


       -march=<cpu> (i32, i32em only)
              Generate code exclusively for a given cpu, where <cpu> is
              one of the following:

              pentiumpro -- Intel Pentium Pro processors

              pentiumii -- Intel Pentium II processors

              pentiumiii -- Intel Pentium III processors

              pentium2 -- Intel Pentium II processors

              pentium3 -- Intel Pentium III processors

              pentium4 -- Intel Pentium 4 processors


       -mcpu=<cpu>
              Optimize  for  a  specific cpu, where <cpu> is one of the
              following:

              pentium -- (i32 only) Optimize for Intel Pentium  proces-
              sor.

              pentiumpro  -- (i32 only) Optimize for Intel Pentium Pro,
              Intel Pentium II and Intel Pentium III processors.

              pentium4 -- (i32 only; DEFAULT  on  IA-32)  Optimize  for
              Intel Pentium 4 processors.

              itanium  -- (i64 only) Optimize for Intel Itanium proces-
              sor

              itanium2 -- (i64 only) Optimize for Intel Itanium 2  pro-
              cessor.

              itanium2-9000  --  (i64, L*X only) Optimize for Dual-Core
              Intel(R) Itanium(R) 2 Processor 9000 Sequence processors.


       -m[no-]ieee-fp
              Same as -mp.


       -mp    Maintain  floating-point  precision  (disables some opti-
              mizations). The  -mp  option  restricts  optimization  to
              maintain  declared  precision  and  to ensure that float-
              ing-point arithmetic conforms more closely  to  the  ANSI
              and  IEEE  standards.  For most programs, specifying this
              option adversely affects performance. If you are not sure
              whether your application needs this option, try compiling
              and running your program both  with  and  without  it  to
              evaluate the effects on both performance and precision.


       -mp1   Improve  floating-point  precision.  -mp1  disables fewer
              optimizations and has less  impact  on  performance  than
              -mp.


       -msse (i32 only)
              Generate  code for Intel Pentium III and compatible Intel
              processors.


       -msse2 (i32 only)
              Generate code for Intel Pentium 4  and  compatible  Intel
              processors.


       -msse3 (i32, i32em only)
              Generate  code  for  Intel Pentium 4 processors with SSE3
              extensions.


       -mtune=<cpu>
              Optimize for a specific cpu, where <cpu> is  one  of  the
              following:

              pentium  -- (i32 only) Optimize for Intel Pentium proces-
              sor.

              pentiumpro -- (i32 only) Optimize for Intel Pentium  Pro,
              Intel Pentium II and Intel Pentium III processors.

              pentium4  --  (i32  only;  DEFAULT on IA-32) Optimize for
              Intel Pentium 4 processors.

              itanium -- (i64 only) Optimize for Intel Itanium  proces-
              sor

              itanium2  -- (i64 only) Optimize for Intel Itanium 2 pro-
              cessor.

              itanium2-9000 -- (i64, L*X only) Optimize  for  Dual-Core
              Intel(R) Itanium(R) 2 Processor 9000 Sequence processors.


       -O0    Disable optimizations.


       -O     Same as -O2


       -O1    Optimize to favor code size and code locality.   Disables
              loop unrolling.  -O1 may improve performance for applica-
              tions with very large code size, many branches, and  exe-
              cution  time not dominated by code within loops.  In most
              cases, -O2 is recommended over -O1.

              i32: Disable intrinsics inlining to reduce code size.

              i64: Disable software pipelining and global code schedul-
              ing.


       -O2 (DEFAULT)
              Optimize  for  code  speed.  This is the generally recom-
              mended optimization level.

              i64: Turn software pipelining ON.


       -O3    Enable -O2 optimizations and  in  addition,  enable  more
              aggressive  optimizations  such as loop and memory access
              transformation, and prefetching.  The  -O3  option  opti-
              mizes  for maximum speed, but may not improve performance
              for some programs.  The -O3 optimizations may  slow  down
              code in some cases compared to -O2 optimizations.  Recom-
              mended for applications that have loops with heavy use of
              floating  point calculations and process large data sets.

              Turn on high-level optimizations. Enable  -O2  plus  more
              aggressive optimizations, such as loop transformation.

              i32,  i32em:  In  conjunction  with  -ax{K|W|N|B|P|T} and
              -x{K|W|N|B|P|T} options, this option causes the  compiler
              to  perform more aggressive data dependency analysis than
              for -O2. This may result in longer compilation times.


       -Ob<n> Control inline expansion, where <n> is one of the follow-
              ing values:

              0 -- Disables inlining.

              1  --  (DEFAULT)  Enables  inlining of functions declared
              with the __inline keyword. Also enables inlining  accord-
              ing to the C++ language.

              2  -- Inlines any function, at the compiler's discretion.
              Enables interprocedural optimizations and  has  the  same
              effect as -ip.


       -Os    Enable  speed  optimizations,  but disable some optimiza-
              tions that increase code size for small speed benefit.


       -pc<n> (i32, i32em only)
              Enable floating-point significand precision control. Some
              floating-point  algorithms  are sensitive to the accuracy
              of the significand, or  fractional  part  of  the  float-
              ing-point  value.  For example, iterative operations like
              division and finding the square root can  run  faster  if
              you  lower  the precision with the -pc<n> option. Set <n>
              to one of the following values to round  the  significand
              to the indicated number of bits:

              32:  24  bits  (single precision) -- Caution: A change of
              the default precision control or rounding mode (for exam-
              ple, by using the -pc32 flag or by user intervention) may
              affect the results returned by some of  the  mathematical
              functions.

              64: 53 bits (double precision)

              80: 64 bits (extended precision) -- DEFAULT


       -[no-]prec-div (i32, i32em only)
              Improve  precision  of floating-point divides (some speed
              impact). With some optimizations the Intel  C++  Compiler
              changes  floating-point division computations into multi-
              plication by the reciprocal of the denominator. For exam-
              ple, A/B is computed as A x (1/B) to improve the speed of
              the computation. However, for values of  B  greater  than
              2126,  the value of 1/B is "flushed" (changed) to 0. When
              it is  important  to  maintain  the  value  of  1/B,  use
              -no-prec-div   to   disable   the   floating-point  divi-
              sion-to-multiplication  optimization.   The   result   of
              -no-prec-div  is more accurate, with some loss of perfor-
              mance.


       -[no-]prec-sqrt (i32, i32em only)
              Determine  if  certain  square  root  optimizations   are
              enabled.


       -rcd (i32, i32em only)
              Enable  fast float-to-int conversions. The Intel compiler
              uses the -rcd option to improve the performance  of  code
              that  requires floating-point-to-integer conversions. The
              system  default   floating   point   rounding   mode   is
              round-to-nearest. However, the C language requires float-
              ing point values to be truncated when a conversion to  an
              integer is involved. To do this, the compiler must change
              the  rounding  mode  to  truncation  before  each  float-
              ing-point-to-integer conversion and change it back after-
              wards. The -rcd option disables the change to  truncation
              of the rounding mode for all floating point calculations,
              including floating point-to-integer conversions.  Turning
              on  this  option  can  improve  performance, but floating
              point conversions to integer will not conform to C seman-
              tics.


       -x<codes>  (i32, i32em only)  (not on M*X32)
              Generates  code  for  Intel(R)  Core(TM)  Duo processors,
              Intel(R) Core(TM) Solo processors, Intel(R) Pentium(R)  4
              processors with Streaming SIMD Extensions 3, and compati-
              ble Intel processors with Streaming  SIMD  Extensions  3.
              Generate  specialized  code to run exclusively on proces-
              sors supporting  the  extensions  indicated  by  <codes>.
              <codes> includes one or more of the following characters:

              K -- Intel Pentium III processors  and  compatible  Intel
              processors

              W -- Intel Pentium 4 processors and compatible Intel pro-
              cessors.  Default for Intel(R) EM64T-based systems.

              N -- Intel Pentium 4 processors and compatible Intel pro-
              cessors  with Streaming SIMD Extensions 2 (SSE2) instruc-
              tion support.  Enables new optimizations in  addition  to
              Intel processor-specific optimizations.

              B -- Intel Pentium M processors and compatible Intel pro-
              cessors.  Enables new optimizations in addition to  Intel
              processor-specific optimizations.

              P  --  Intel(R) Core(TM) Duo, Intel(R) Core Solo(TM), and
              Intel(R) Pentium(R)  4  Processors  with  Streaming  SIMD
              Extensions  3  (SSE3)  instruction  support.  Enables new
              optimizations in  addition  to  Intel  processor-specific
              optimizations  including  advanced  data  layout and code
              restructuring optimizations to  improve  memory  accesses
              for Intel processors.  Default for M*X32 systems.

              T --  Intel(R) Core(TM)2 Duo, Intel(R) Core(TM)2 Extreme,
              and the Dual-Core Intel(R) Xeon(R) processor 5100 series.
              Enables  new  optimizations  in addition to Intel proces-
              sor-specific optimizations including advanced data layout
              and  code  restructuring  optimizations to improve memory
              accesses for Intel processors.

              Note:  The  only  -x  options   available   on   Intel(R)
              EM64T-based systems are -xW, -xP, and -xT.


              Note:  On  M*X32  systems,  P is the only valid processor
              value. On these systems, -xP is the default and is always
              set.


              Note:  If you specify more than one processor value, code
              is generated for only  the  highest-performing  processor
              specified.   For  example, if you specify -xKW, only spe-
              cialized code for the Intel Pentium 4 processor is gener-
              ated.   The  highest-performing to lowest-performing pro-
              cessor values are: T, P, B, N, W, K.


              Note: Programs compiled using option  -xN,  -xB,  or  -xP
              will  display  a  fatal  run-time error if executed by an
              unsupported processor.  For  more  information,  see  the
              Intel C++ Compiler User's Guide.



   Advanced Performance Options
       The  advanced  performance options allow fine tuning of compila-
       tion or allow control over advanced features of the compiler.


       -[no-]alias-args
              Assume [do not assume] arguments may be aliased. (DEFAULT
              = -no-alias-args).


       -[no-]ansi-alias
              The  -[no-]ansi-alias  option  directs  the  compiler  to
              assume that the program adheres to the rules  defined  in
              the  ISO  C  Standard.   If your program adheres to these
              rules, then this option will allow the compiler to  opti-
              mize  more  aggressively.   If it doesn't adhere to these
              rules, then it can cause the compiler to generate  incor-
              rect code.


       -auto-ilp32 (i32em, i64 only)  (not on M*X32)
              Instructs  the compiler to analyze and transform the pro-
              gram so that 64-bit pointers are shrunk to 32-bit  point-
              ers,  and  64-bit longs (on Linux) are shrunk into 32-bit
              longs wherever it is legal and safe to do  so.  In  order
              for this option to be effective the compiler must be able
              to optimize using the -ipo option and  must  be  able  to
              analyze  all library or external calls the program makes.


              This option requires that the size of  the  program  exe-
              cutable never exceeds 2 (to the 32nd power) bytes and all
              data values can be represented within  32  bits.  If  the
              program  can  run  correctly  in  a  32-bit system, these
              requirements are implicitly  satisfied.  If  the  program
              violates  these size restrictions, unpredictable behavior
              might occur.


              Note: The -auto-ilp32 option applies to  i64  and  i32em,
              but  with  i32em  it  has  no effect unless option -xP or
              option -axP is also specified.  It does not apply to i32.


       -[no-]complex-limited-range
              Tell the compiler to use the highest performance formula-
              tions of complex arithmetic  operations,  which  may  not
              produce  acceptable results for input values near the top
              or bottom of the legal range. Without  this  option,  the
              compiler  uses a better formulation of complex arithmetic
              operations, thus producing  acceptable  results  for  the
              full  range  of input values, though at some loss in per-
              formance.


       -[no-]clomp-sharable-info  (i32em, i64 only)
              Reports variables that the compiler  automatically  makes
              sharable for Cluster OpenMP*.


       -[no-]clomp-sharable-propagation  (i32em, i64 only)
              Reports  variables  that  need to be made sharable by the
              user with Cluster OpenMP*.


       -[no-]cluster-openmp (i32em, i64 only)
              Compiles an OpenMP* program for execution on a cluster.


       -[no-]cluster-openmp-profile  (i32em, i64 only)
              Compiles an OpenMP* program for execution on  a  cluster,
              and links with a performance statistics library.


       -fargument-[no-]alias
              Same as -[no-]alias-args.


       -fargument-noalias-global
              Arguments do not alias each other and do not alias global
              storage.


       -[no-]fnsplit (i64 only)
              Enable[disable] function splitting. Function splitting is
              enabled  by -prof-use in Phase 3 to improve code locality
              by splitting routines into different sections:  one  sec-
              tion  to  contain  the cold or very infrequently executed
              code, and one section to contain the  rest  of  the  code
              (hot code).

              You  can  use -[no-]fnsplit to disable function splitting
              for the following reasons:


              ·    Most importantly, to get improved debugging capabil-
                   ity.  In  the debug symbol table, it is difficult to
                   represent a split routine, that is, a  routine  with
                   some of its code in the hot code section and some of
                   its code in the cold code section.


              ·    The -no-fnsplit option disables the splitting within
                   a  routine  but  enables function grouping, an opti-
                   mization in which entire routines are placed  either
                   in  the  cold  code section or the hot code section.
                   Function grouping does not degrade  debugging  capa-
                   bility.


              ·    When  the profile data does not represent the actual
                   program behavior, that is, when the routine is actu-
                   ally used frequently rather than infrequently.


       -fp-model <name>
              Enable <name> floating point model variation.


       -ftls-model=<model>
              Change  thread-local  storage model, where <model> can be
              the following:


              ·    global-dynamic


              ·    local-dynamic


              ·    initial-exec


              ·    local-exec



       -ftz (i64 only)
              Flush denormal results to zero.


       -funroll-loops
              Unroll loops based on default heuristics.

              -[no-]inline-factor=<n> Specifies the  percentage  multi-
              plier that should be applied to all inlining options that
              define upper limits.  The value <n> is a positive integer
              specifying  the  percentage  value.  The default value is
              100 (a factor of 1).


       -inline-forceinline
              Specifies that an inline routine should be inlined  when-
              ever the compiler can do so.  (Default OFF)


       -[no-]inline-max-per-compile=<n>
              Specifies  the  maximum  number  of times inlining may be
              applied to an entire compilation unit.  The value <n>  is
              a  positive  integer  that  specifies the number of times
              inlining may be applied. (Default OFF)


       -[no-]inline-max-per-routine=<n>
              Specifies the maximum number of  times  the  inliner  may
              inline  into  a  particular  routine.  The value <n> is a
              positive integer that specifies  the  maximum  number  of
              times  the  inliner may inline into a particular routine.
              (Default OFF)


       -[no-]inline-max-size=<n>
              Specifies the lower  limit  for  the  size  of  what  the
              inliner  considers  to be a large routine.  The value <n>
              is a positive integer that specifies the minimum size  of
              what  the  inliner  considers  to  be  a  large  routine.
              (Default OFF)


       -[no-]inline-max-total-size=<n>
              Specifies how much larger a  routine  can  normally  grow
              when  inline  expansion is performed.  The value <n> is a
              positive integer that specifies the permitted increase in
              the  routine's  size  when inline expansion is performed.
              (Default OFF)


       -[no-]inline-min-size=<n>
              Specifies the upper  limit  for  the  size  of  what  the
              inliner  considers  to be a small routine.  The value <n>
              is a positive integer that specifies the maximum size  of
              what  the  inliner  considers  to  be  a  small  routine.
              (Default OFF)


       -ip    Enable additional interprocedural optimizations for  sin-
              gle  file  compilation.  These optimizations are a subset
              of full intra-file interprocedural optimizations.


       -IPF-flt-eval-method0 (i64 only)
              Direct the compiler to evaluate the expressions involving
              floating-point operands in the precision indicated by the
              variable types declared in the program.


       -[no-]IPF-fltacc (i64 only)
              Enable [disable] optimizations that affect floating point
              accuracy.  By  default  (-IPF-fltacc-)  the  compiler may
              apply optimizations that reduce floating-point  accuracy.
              You  may use -IPF-fltacc or -mp to improve floating-point
              accuracy, but at the cost  of  disabling  some  optimiza-
              tions.


       -[no-]IPF-fma (i64 only)
              Enable  [disable]  the combining of floating point multi-
              plies and add/subtract  operations.  -IPF-fma[-]  enables
              [disables] the contraction of floating-point multiply and
              add/subtract operations into a single  operation.  Unless
              -mp is specified, the compiler contracts these operations
              whenever possible. The -mp option disables  the  contrac-
              tions. -IPF-fma and -IPF-fma- can be used to override the
              default compiler behavior.


       -[no-]IPF-fp-relaxed (i64 only)
              Enable [disable] use of faster but slightly less accurate
              code  sequences  for  math  functions, such as divide and
              square root.


       -IPF-fp-speculation{fast|safe|strict|off} (i64 only)
              Enable floating point  speculations  with  the  following
              conditions:

              fast -- Speculate floating point operations

              safe -- Speculate only when safe

              strict -- Same as off

              off -- Disables speculation of floating-point operations


       -ip-no-inlining
              Disable inlining that would result from the -ip interpro-
              cedural optimization, but has no effect on  other  inter-
              procedural optimizations.


       -ip-no-pinlining (i32, i32em only)
              Disable partial inlining (requires -ip or -ipo)


       -ipo[value]
              Enables multifile IP optimizations (between files).  When
              you specify this option,  the  compiler  performs  inline
              function expansion for calls to functions defined in sep-
              arate files.

              The [value] argument is an optional integer  that  speci-
              fies  the number of object files the compiler should cre-
              ate.  Any integer greater than or equal to 0 is valid.

              If [value] is 0, the compiler decides whether  to  create
              one or more object files based on an estimate of the size
              of the object file.  It generates  one  object  file  for
              small  applications,  and  two  or  more object files for
              large applications.

              If [value] is positive, the  compiler  generates  [value]
              object files, unless [value] exceeds the number of source
              files (m), in which case the compiler  generates  only  m
              object files.

              If you do not specify [value], the default is 1.


       -ipo-c Generate a multi-file object file (ipo-out.o) that can be
              used in further link steps.


       -ipo-S Generate a multi-file assembly file (ipo-out.s) that  can
              be used in further link steps.


       -ipo-separate
              Creates  one  object  file  for  every  source file. This
              option overrides -ipo[value].


       -ivdep-parallel (i64 only)
              Indicate  there  is  absolutely  no  loop-carried  memory
              dependency  in  any  loop where IVDEP directive is speci-
              fied. This technique is useful  for  some  sparse  matrix
              applications.


       -mno-serialize-volatile (i64 only)
              Memory  access  ordering  for volatile data object refer-
              ences may be suppressed.


       -mserialize-volatile (i64 only)
              Enable strict memory access ordering  for  volatile  data
              object references.


       -openmp
              Enable  the  parallelizer to generate multi-threaded code
              based on the OpenMP* directives. The code can be executed
              in  parallel on both uniprocessor and multiprocessor sys-
              tems. The -openmp option works with both  -O0  (no  opti-
              mization)   and   any  optimization  level  of  -O1,  -O2
              (default) and -O3. Specifying -O0 with -openmp  helps  to
              debug OpenMP applications.


       -openmp-profile
              Enables  analysis  of  OpenMP* applications with Intel(R)
              Thread Profiler, which is required to use this option.


       -openmp-report[<n>]
              Control the OpenMP  parallelizer's  level  of  diagnostic
              messages, where <n> is one of the following:

              0 -- no diagnostic information is displayed.

              1  --  Display diagnostics indicating loops, regions, and
              sections successfully parallelized. (DEFAULT)

              2 -- same as -openmp-report1 plus diagnostics  indicating
              MASTER   constructs,  SINGLE  constructs,  CRITICAL  con-
              structs, ORDERED constructs, ATOMIC directives, etc. suc-
              cessfully handled.


       -openmp-stubs
              Enable  the user to compile OpenMP programs in sequential
              mode. The openmp directives are ignored and a stub OpenMP
              library is linked (sequential).


       -opt-mem-bandwidth<n> (i64, L*X only)
              Enables  or  disables  performance  tuning and heuristics
              that control memory bandwidth use among  processors.   It
              allows  the compiler to be less aggressive with optimiza-
              tions that might consume  more  bandwidth,  so  that  the
              bandwidth  can  be  well-shared among multiple processors
              for a parallel program.  For values of <n>  greater  than
              0,  the option tells the compiler to enable a set of per-
              formance tuning and heuristics in compiler  optimizations
              such   as  prefetching,  privatization,  aggressive  code
              motion, and so forth, for reducing memory bandwidth pres-
              sure   and   balancing  memory  bandwidth  traffic  among
              threads.  The <n> value is the level  of  optimizing  for
              memory  bandwidth  usage. You can specify one of the fol-
              lowing values for <n>:

              0 -- Disables a set of performance tuning and  heuristics
              in compiler optimizations for parallel code.  This is the
              default for serial code.

              1 -- Enables a set of performance tuning  and  heuristics
              in  compiler  optimizations for multithreaded code gener-
              ated by the compiler.  This is the  default  if  compiler
              option  -parallel  or  -openmp  is  specified, or Cluster
              OpenMP option -cluster-openmp is specified (see the Clus-
              ter OpenMP documentation).

              2  --  Enables a set of performance tuning and heuristics
              in compiler optimizations for parallel code such as  Win-
              dows  Threads,  pthreads,  and  MPI  code, besides multi-
              threaded code generated by the compiler.


       -opt-report
              Generate an optimization report and direct it to  stderr.

              DEFAULT:  The  compiler  does  not  generate optimization
              reports.


       -opt-report-file<file>
              Specify the filename for the generated report


       -opt-report-help
              List the logical names of optimizers available for report
              generation.


       -opt-report-level[<level>]
              Specify  the  level of report verbosity, where <level> is
              one of the following:

              min -- The min  argument  provides  the  minimal  summary
              (DEFAULT)

              med  --  The  med argument produces an intermediate-level
              report.

              max -- The max argument produces the full report.


       -opt-report-phase<name>
              Specify the optimizer phase  against  which  reports  are
              generated.  The  compiler generates reports for the opti-
              mizer you specify in the <name>. This option can be  used
              multiple  times  on  the  same  command  line to generate
              reports for multiple optimizers. Currently, the following
              optimizer reports are supported:

              ipo -- Interprocedural Optimizer

              hlo -- High Level Optimizer

              ilo -- Intermediate Language Scalar Optimizer

              ecg -- Code Generator

              omp -- OpenMP

              all -- All phases

              When  one  of  the  above logical names for optimizers is
              specified for <name>, all reports from that optimizer are
              generated.


       -opt-report-routine<substring>
              Generate  reports from all routines with names containing
              <substring> as part of their name. If <substring> is  not
              specified, reports from all routines are generated.

              DEFAULT: The compiler generates reports for all routines.


       -p     Compile and link for function profiling with Linux gprof*
              tool.  Same as -qp.


       -parallel
              Enable  the  auto-parallelizer to generate multi-threaded
              code for loops that can be safely executed  in  parallel.
              The  -parallel  option  enables  the auto-parallelizer if
              either the -O2 or -O3 optimization option is also on (the
              default is -O2).


       -par-report[<n>]
              Control  the  level  of auto-parallelizer diagnostic mes-
              sages, where <n> is one of the following:

              0 -- no diagnostic information is displayed.

              1  --  indicates  loops  successfully   auto-parallelized
              (DEFAULT).  Issues a "LOOP AUTO-PARALLELIZED" message for
              parallel loops.

              2 -- indicates successfully  auto-parallelized  loops  as
              well as unsuccessful loops.

              3  --  same  as  2  plus additional information about any
              proven or  assumed  dependencies  inhibiting  auto-paral-
              lelization (reasons for not parallelizing).


       -par-threshold[<n>]
              Set  a  threshold  for  the auto-parallelization of loops
              based on the probability of profitable execution  of  the
              loop  in  parallel.  This  option is used for loops whose
              computation work volume  cannot  be  determined  at  com-
              pile-time.  The  threshold  is  usually relevant when the
              loop trip count is unknown at compile-time.

              <n>=0-100. (DEFAULT: <n>=75)

              The compiler applies a heuristic that  tries  to  balance
              the  overhead  of  creating  multiple  threads versus the
              amount  of  work  available  to  be  shared  amongst  the
              threads.


       -[no-]prefetch (i64 only)
              Enables  [disables] the insertion of software prefetching
              by the compiler. Default is -prefetch.


       -prof-dir <dir>
              Specify directory <dir> for profiling output files (*.dyn
              and  *.dpi).  Use  the -prof-dir option with  prof-gen as
              recommended for most programs, especially if the applica-
              tion includes the source files located in multiple direc-
              tories. -prof-dir ensures that the profile information is
              generated in one consistent place.


       -prof-file <file>
              Specify file name <file> for profiling summary file


       -prof-gen[x]
              Instruct  the  compiler  to  produce instrumented code in
              your object files in preparation for instrumented  execu-
              tion.  With  the  x qualifier, extra information is gath-
              ered. This option is used in Phase 1 of PGO  to  instruct
              the  compiler to produce instrumented code in your object
              files in preparation for instrumented execution. Parallel
              make  is  automatically supported for -prof-genx compila-
              tions.


       -prof-gen-sampling
              Prepare code for use with the  profrun  sample  gathering
              tool.



       -prof-use
              Instruct the compiler to produce a profile-optimized exe-
              cutable and merge available  dynamic  information  (.dyn)
              files into a pgopti.dpi file. Use the -prof-use option in
              Phase 3 of PGO.


       -qp    Compile and link for function profiling with Linux gprof*
              tool.  Same as -p.


       -ssp (i32 only)
              Enable software-based speculative pre-computation.


       -tcheck
              The  -tcheck compiler option enables analysis of threaded
              applications  with  Intel(R)  Thread  Checker,  which  is
              required to use this option.


       -unroll<n> (i32, i32em only)
              Set maximum number of times to unroll loops. This applies
              only to loops that  the  compiler  determines  should  be
              unrolled.  Omit  n  to let the compiler decide whether to
              perform  unrolling  or  not.  Use  n=0  to  disable  loop
              unrolling.


       -unroll0 (i64 only)
              Disable  loop unrolling.  For i64: the only allowed value
              is 0.


       -vec-report[<n>] (i32, i32em only)
              Control the vectorizer's level  of  diagnostic  messages,
              where <n> is one of the following:

              0 -- No diagnostic information

              1 -- Indicate vectorized loops (DEFAULT)

              2 -- Indicate vectorized/non-vectorized loops

              3  --  Indicate  vectorized/non-vectorized loops and pro-
              hibiting data dependence information

              4 -- Indicate non-vectorized loops

              5 -- Indicate non-vectorized loops and  prohibiting  data
              dependence information

              If  you  use  -c,  -ipo with -vec-report{n} option or -c,
              -x{K|W|N|B|P|T}      or       -ax{K|W|N|B|P|T}       with
              -vec-report[<n>],  the  compiler  issues a warning and no
              report is generated.


   Output, Debug, and PCH Options
       The output, debug, and PCH options provide control over compiler
       output,  setup  for debugging, and use of the precompiled header
       features of the compiler.


       -c     Compile to object (.o) only, do not link.


       -create-pch <filename>
              Manual creation of precompiled header <filename>. Use the
              -create-pch <filename> option if you want the compiler to
              create a PCH file called <filename>. The filename  param-
              eter  must be specified. The filename  parameter can be a
              full path name. The full path to  filename   must  exist.
              The  .pchi  extension  is  not  automatically appended to
              filename. This option cannot be used in the same compila-
              tion  as  -use-pch  filename.  The  -create-pch  filename
              option is supported for single source  file  compilations
              only.


       -[no-]debug[keyword]
              Enable  debug  information and control output of enhanced
              debug  information.    The   supported   [keywords]   are
              extended,  [no]variable-locations, [no]semantic-stepping,
              [no-]expr-source-pos,  and  [no]inline_debug_info}.   The
              debug  switches control emission of enhanced debug infor-
              mation. They must be used in conjunction with  the  basic
              -g switches that request debug information.


              extended -- Turns on the -debug options;

              ·    -debug [no-]expr-source-pos,

              ·    -debug [no]variable-locations,

              ·    -debug [no]semantic-stepping, and

              ·    -debug [no]inline_debug_info.


              [no-]expr-source-pos  --  Determines whether source posi-
              tion information at the expression level  of  granularity
              is produced.

              [no]variable-locations  --  Determines  whether  enhanced
              debug information useful in finding  scalar  local  vari-
              ables is produced.

              [no]semantic-stepping   --  Determines  whether  enhanced
              debug information useful for breakpoints and stepping  is
              produced.

              [no]inline_debug_info   --  Determines  whether  enhanced
              debug information is produced for inlined code.



       -fcode-asm
              Produce assembly file with optional code annotations.


       -fsource-asm
              Produce assembly file with optional code annotations.


       -ftrapuv
              Initializes stack local variables to an unusual value  to
              help error detection.


       -f[no]verbose-asm
              Produce assembly file with compiler comments (DEFAULT).


       -g     Produce  symbolic  debug  information in object file. The
              compiler does not support  the  generation  of  debugging
              information  in  assemblable files. If you specify the -g
              option, the resulting object file will contain  debugging
              information,  but  the assemblable file will not.  The -g
              option changes the default optimization from -O2 to  -O0.

              If you specify -g with -O1, -O2, or -O3, then -fp is dis-
              abled and allows the compiler to use the EBP register  as
              a  general-purpose  register  in  optimizations. However,
              most debuggers expect EBP to be used  as  a  stack  frame
              pointer, and cannot produce a stack backtrace unless this
              is so. Using the -fp option can result in  slightly  less
              efficient code.

              i32  only:  Specifying the -g or -O0 option automatically
              enables the -fp option.


       -g0    Disable generation of symbolic debug information.


       -inline-debug-info
              Preserve the source position of inlined code  instead  of
              assigning  the call-site source position to inlined code.


       -map-opts  (not on M*X32)
              Enable option mapping tool.


       -o<file>
              This option specifies the name of an output file as  fol-
              lows:


              ·    If the -c option is specified, it specifies the name
                   of the generated object file.

              ·    If the -S option is specified, it specifies the name
                   of the generated assembly listing file.

              ·    If the -P option is specified, it specifies the name
                   of the generated preprocessor file.


              Otherwise, it specifies the name of the executable  file.


       -pch   Automatic processing for precompiled headers.  Direct the
              compiler to use  appropriate  PCH  files.   If  none  are
              available,  they  are  created  as  sourcefile.pchi. This
              option supports multiple source files.

              Note: The -pch option uses PCH files created  from  other
              sources  if  the headers files are the same. For example,
              if you compile source1.cpp using -pch, then  source1.pchi
              is  created.  If you then compile source2.cpp using -pch,
              the compiler will use source1.pchi if it detects the same
              headers.


       -pch-dir <dirname>
              Directs  the  compiler  to  find and/or create a file for
              pre-compiled  headers  in  dirname.  Use   the   -pch-dir
              <dirname> option to specify the path (dirname) to the PCH
              file. You can use  this  option  with  -pch,  -create-pch
              filename, and -use-pch filename.


       -print-multi-lib
              Print information about libraries being used.


       -S     Compile to an assemblable file (.s), then stop the compi-
              lation.


       -use-asm
              Produce objects through the assembler.

              Note:   GNU inline assembler  (asm)  code  and  Microsoft
              inline  assembler (msasm) code cannot be used together in
              the same translation unit.


       -use-msasm (i32, i32em only)
              Support  Microsoft*  style  assembly  language  insertion
              using  MASM style syntax and, if requested, output assem-
              bly in MASM format.

              Note:   GNU inline assembler  (asm)  code  and  Microsoft
              inline  assembler (msasm) code cannot be used together in
              the same translation unit.


       -use-pch <filename>
              Manual use of precompiled  header  (filename.pchi).  This
              option directs the compiler to use the PCH file specified
              by filename. It cannot be used in the same compilation as
              -create-pch  <filename>.  The  -use-pch <filename> option
              supports full path names  and  supports  multiple  source
              files when all source files use the same .pchi file.


   Preprocessor Options
       The preprocessor options listed here control preprocessing oper-
       ations for the compiler.


       -A-    Remove  all  predefined  macros.  Causes  all  predefined
              macros and assertions to be inactive.


       -A<name>[<value(s)>]
              Associate  a symbol <name> with the specified sequence of
              <value(s)>. Equivalent to an #assert preprocessing direc-
              tive.


       -C     Preserve comments in preprocessed source output. Comments
              following preprocessing directives are not preserved.


       -D<name>[=<value>]
              Define the macro <name> and associate it with the  speci-
              fied  <value>.   Equivalent  to  a  #define preprocessing
              directive.

              DEFAULT: -D<name> defines the macro <name> with a <value>
              of 1.


       -dD    Same  as  -dM,  but outputs #define directives in prepro-
              cessed source.


       -dM    Output macro definitions in  effect  after  preprocessing
              (use with -E).


       -dN    Same  as  -dD,  but #define directives contain only macro
              names.


       -E     Direct the preprocessor to expand your source module  and
              write  the  result  to  standard output. The preprocessed
              source contains #line directives, which the compiler uses
              to determine the source file and line number.


       -EP    Direct  the preprocessor to expand your source module and
              write the result to standard  output.  Does  not  include
              #line  directives  in the output. -EP is equivalent to -E
              -P.


       -H     Print "include" file order and continue compilation.


       -I<dir>
              Add directory <dir> to include file search path. For mul-
              tiple  search directories, multiple  I<dir> commands must
              be used. The compiler searches  directories  for  include
              files  in the following order: 1. Directory of the source
              file that contains the include. 2. Directories  specified
              by the -I option.


       -idirafter<dir>
              Add  directory  <dir>  to  the second include file search
              path (after -I).


       -imacros<file>
              Treat <file> as an #include file, but throw away all pre-
              processing  while  the  macros  that  are  defined remain
              defined.


       -iprefix<prefix>
              Use <prefix> with -iwithprefix as a prefix.


       -iquote<dir>
              Add <dir> to the front of the include  file  search  path
              for   files   included  with  quotes  but  not  brackets.
              (DEFAULT = OFF)


       -isystem<dir>
              Add directory <dir> to the start of  the  system  include
              path.


       -iwithprefix<dir>
              Append  <dir> to the prefix passed in by -iprefix and put
              it on the include search path at the end of  the  include
              directories.


       -iwithprefixbefore<dir>
              Similar  to  -iwithprefix except the include directory is
              placed in the same place as the -I command  line  include
              directories.


       -M     Generate  makefile dependency lines for each source file,
              based on the #include lines found in the source file.


       -MD    Preprocess and compile. Generate output file  (.d  exten-
              sion) containing dependency information.


       -MF<file>
              Generate  makefile dependency information in <file>. Must
              specify -M or -MM.


       -MG    Similar to -M, but treats missing header files as  gener-
              ated files.


       -MM    Similar  to -M, but does not include system header files.


       -MMD   Similar to -MD, but does not include system header files.


       -MP    Add a phony target for each dependency.


       -MQ<target>
              Same as -MT, but quotes special Make characters.


       -MT<target>
              Change the default target rule for dependency generation.


       -no-gcc
              Do  not  predefine  the  __GNUC__,  __GNUC_MINOR__,   and
              __GNUC_PATCHLEVEL__ macros.


       -nostdinc
              Same as -X.


       -P     Direct  the preprocessor to expand your source module and
              store the result in a .i file in the  current  directory.
              Unlike the -E option, the output from -P does not include
              #line number directives.  By  default,  the  preprocessor
              creates  the  name of the output file using the prefix of
              the source file name with a .i extension.

              Caution: When you use the -P option, any  existing  files
              with the same name and extension are overwritten.


       -U<name>
              Remove  predefined  macro. Equivalent to a #undef prepro-
              cessing directive.


       -X     Remove standard  directories  from  include  file  search
              path.  You  can  use  the -X option with the -I option to
              prevent the compiler from searching the default path  for
              include files and direct it to use an alternate path.



   Component Control Options
       You  can direct the compiler to specify alternate tools for pre-
       processing, compilation, assembly, and linking. Further, you can
       invoke  options  specific to your alternate tools on the command
       line.  These are the component control options.


       -Qinstall <dir>
              Set <dir> as the root of the compiler installation.


       -Qlocation,<tool>,<path>
              Set <path> as the  location  of  the  tool  specified  by
              <tool>.  <tool>  may be cpp, c, asm, or ld. <path> is the
              complete path to the tool.  For example:

              -Qlocation,gas,<path> Specifies the GNU assembler.

              -Qlocation,gld,<path> Specifies the GNU linker.


       -Qoption,<tool>,<optlist>
              Pass options <optlist> to the tool specified  by  <tool>.
              <tool> may be cpp, c, asm, or ld.  The <optlist> argument
              indicates one or more valid argument strings for the des-
              ignated  program.  If  the  argument  is  a  command-line
              option, you must include the hyphen. If the argument con-
              tains  a  space  or  tab  character, you must enclose the
              entire argument in quotation characters  ("").  You  must
              separate multiple arguments with commas.


   Language Options
       The  language  options  define  parameters and standards for the
       compiler with reference to the C/C++ source files.


       -[no]align (i32, i32em only)
              Analyze and  reorder  memory  layout  for  variables  and
              arrays.


       -ansi  Support  all  ANSI standard C programs, equivalent to the
              -ansi option of gcc.


       -[no-]c99
              Enable [disable] C99 support for C programs.


       -export
              Enable recognition of exported  templates.  Supported  in
              C++ mode only.


       -export-dir <dir>
              Specifies  a  directory  name  for  the exported template
              search path.


       -fno-gnu-keywords
              Do not recognize 'typeof' as a keyword.


       -fno-implicit-inline-templates
              Do not emit code for implicit  instantiations  of  inline
              templates.


       -fno-implicit-templates
              Never  emit  code  for  non-inline  templates  which  are
              instantiated implicitly (i.e. by use); only emit code for
              explicit instantiations.


       -f[no-]non-lvalue-assign
              Allow  [disallow] casts and conditional expressions to be
              used as lvalues.  (DEFAULT = allow)


       -fno-operator-names
              Disable support for operator name keywords.


       -fpermissive
              Allow for non-conformant code.


       -f[no-]rtti
              Enable [disable] RTTI support.


       -fshort-enums
              Allocate as many bytes as needed for enumerated types.


       -fsyntax-only
              Same as -syntax.


       -ftemplate-depth-<n>
              Control  the  depth  to  which  recursive  templates  are
              expanded.


       -funsigned-bitfields
              Change default bitfield type to unsigned.


       -funsigned-char
              Change default char type to unsigned.


       -Kc++  Compile  all  source  or  unrecognized  file types as C++
              source files.


       -malign-double (i32, i32em only)
              Same as -align.


       -[no]restrict
              Enable [disable] the "restrict" keyword for  disambiguat-
              ing pointers.


       -std=c99
              Enable C99 support for C programs


       -strict-ansi
              Select strict ANSI C/C++ conformance dialect


       -Zp[n] Specify  alignment  constraint  for  structure  and union
              types, where n is one of the following: 1,2,4,8,16.


   Compiler Diagnostics Options
       The compiler diagnostics options define and control  aspects  of
       the compilation associated with diagnostics.


       -[no]traceback
              Tells  the  compiler  to  generate  [not  generate] extra
              information in the object file to allow  the  display  of
              source  file  traceback  information  at  run time when a
              severe error occurs.   This is intended for  use  with  C
              code that is to be linked into a Fortran program.


       -w     Disable all warnings. Displays error messages only.


       -w<n>  Control diagnostics, where <n> is one of the following:

              0 -- Display errors (same as -w)

              1 -- Display warnings and errors (DEFAULT)

              2 -- Display remarks, warnings, and errors


       -W[no-]abi
              Warn  [do not warn] if generated code is not C++ ABI com-
              pliant (Default = -Wno-abi).


       -Wall  Enable all warnings.


       -Wbrief
              Print brief one-line diagnostics. When enabled, the orig-
              inal  source  line is not displayed and the error message
              text is not wrapped when too long  to  fit  on  a  single
              line.


       -Wcheck
              Enable  more  strict  diagnostics.  Performs compile-time
              code checking for code that exhibits non-portable  behav-
              ior,  represents  a possible unintended code sequence, or
              possibly affects operation of the program  because  of  a
              quiet change in the ANSI C Standard.


       -W[no-]comment[s]
              Warn when /* appears in the middle of a /* */ comment.


       -Wcontext-limit=<n>
              Set  maximum  number  of  template instantiation contexts
              shown in diagnostic.


       -wd<L1>[,<L2>,...<LN>]
              Disable diagnostics L1 through LN.


       -W[no-]deprecated
              Print warnings related to deprecated features.


       -we<L1>[,<L2>,...<LN>]
              Change severity of diagnostics L1 through LN to error.


       -Werror
              Force warnings to be reported as errors.


       -Winline
              Enable inline diagnostics.


       -W[no-]main
              Warn if return type of main is not expected.


       -W[no-]missing-prototypes
              Warn for missing prototypes.


       -wn<n> Print a maximum of <n> errors displayed before  the  com-
              piler  aborts.  By  default,  if more than 100 errors are
              displayed, compilation aborts. Remarks  and  warnings  do
              not count towards this limit.


       -Wp64  Print diagnostics for 64-bit porting.


       -W[no-]pointer-arith
              Warn for questionable pointer arithmetic.


       -wr<L1>[,<L2>,...<LN>]
              Change severity of diagnostics L1 through LN to remark.


       -W[no-]return-type
              Warn when a function uses the default int return type and
              warn when a return statement is used in a void  function.


       -W[no-]shadow
              Warn  if a variable declaration hides a previous variable
              declaration.


       -W[no-]uninitialized
              Warn if a variable is used before being initialized.


       -W[no-]unknown-pragmas
              Warn if an unknown #pragma directive is used (DEFAULT).


       -W[no-]unused-function
              Warn if declared function is not used.


       -ww<L1>[,<L2>,...<LN>]
              Change severity of diagnostics L1 through LN to  warning.



   Miscellaneous Options
       The  miscellaneous  options  cover  a variety of unrelated tasks
       related to the compiler.


       -B<dir>
              Specifies the directory (dir) that can be  used  to  find
              libraries,  headers,  and  executables  for  the compiler
              itself.


       -dryrun
              Show driver tool commands but do not execute tools.


       -dumpversion  (not on M*X32)
              Return the version number of the compiler.


       -fabi-version=<value>
              Instructs the compiler to select a specific ABI implemen-
              tation, where <value> is the ABI implementation. Possible
              values are:.

              0 -- Requests all the latest ABI fixes.  Default  if  gcc
              version 3.2 is installed.

              1  --  Requests  the ABI used in gcc 3.3.  Default if gcc
              version 3.3 is installed.

              2 -- Requests  the  ABI  used  in  gcc  3.4  and  higher.
              Default if gcc version 3.4 or higher is installed.


       -f[no-]common
              Enables the compiler to treat common variables as if they
              were defined, allowing the use  of  gprel  addressing  of
              common data variables.


       -f[no-]math-errno
              Set  ERRNO after calling standard math library functions.


       -fminshared
              Compilation is for the main executable. Absolute address-
              ing  can be used and non-position independent code gener-
              ated for symbols that are at least protected.


       -fno-builtin
              Disable inline expansion of intrinsic functions.


       -fno-builtin-<func>
              Disable the <func> intrinsic.


       -fpack-struct
              Pack structure members together.


       -f[no-]pic, -f[no-]PIC
              i32: This option generates position independent code.  By
              default this option is OFF.

              i64: This option generates code allowing full symbol pre-
              emption.  By default this option is OFF.


       -fr32 (i64 only)
              Disable use of high floating point  registers.  Use  only
              lower 32 floating-point registers.


       -freg-struct-return
              Return  struct  and union values in registers when possi-
              ble.


       -fstack-security-check (i32, i32em only)
              Enable overflow security checks.


       -fvisibility=[extern|default|protected|hidden|internal]
              Global symbols (data and functions) will get the visibil-
              ity   attribute   given  by  default.  Symbol  visibility
              attributes explicitly set in the source code or using the
              symbol  visibility  attribute  file options will override
              the -fvisibility setting.


       -fvisibility-default=<file>
              Space separated symbols listed  in  the  <file>  argument
              will get visibility set to default.


       -fvisibility-extern=<file>
              Space  separated  symbols  listed  in the <file> argument
              will get visibility set to extern.


       -fvisibility-hidden=<file>
              Space separated symbols listed  in  the  <file>  argument
              will get visibility set to hidden.


       -fvisibility-inlines-hidden  (i32 only)
              Causes  inline  member  functions  (those  defined in the
              class declaration) to be marked hidden.


       -fvisibility-internal=<file>  (not on M*X32)
              Space separated symbols listed  in  the  <file>  argument
              will get visibility set to internal.


       -fvisibility-protected=<file>  (not on M*X32)
              Space  separated  symbols  listed  in the <file> argument
              will get visibility set to protected.


       -[no-]gcc-extern-inline
              The -gcc-extern-inline flag, by default, lays down a body
              for a function declared to be extern inline. The gcc com-
              piler, however, never lays down a  body  for  a  function
              declared  to  be  extern  inline. Instead, gcc treats the
              function as if it were declared extern but with no  defi-
              nition in the compilation unit.

              No  body is created unless the function cannot be inlined
              for some  reason  (for  example,  its  address  might  be
              taken).   The  body  laid  down for a function because of
              this flag will always be weak so  a  non-weak  definition
              elsewhere  in  the  compilation will be used instead.  If
              you want the C99 behavior rather  than  the  now  default
              (more)  gcc  like behavior, use the -no-gcc-extern-inline
              flag.  This  flag  is  on  (i.e.  -gcc-extern-inline)  by
              default.


       -gcc-name=<dir>
              Use  this option to specify the location of g++ when com-
              piler cannot locate gcc  C++  libraries.   For  use  with
              -cxxlib-<mode>  configuration.  The <dir> argument is the
              full path location of g++.  Use this option  when  refer-
              encing a non-standard gcc installation.


       -gcc-version=<nnn>
              This  option provides compatible behavior with gcc, where
              <nnn> indicates the gcc version.  The required values for
              <nnn> are:

              not set -- if gcc version is older than 3.2

              320 -- if gcc version is 3.2

              330 -- if gcc version is 3.3

              340 -- if gcc version is 3.4

              400 -- if gcc version is 4.0

              410 -- if gcc version is 4.1

              Note:    The  <nnn> version number follows a format where
              the first number represents the major version, the second
              number represents the minor version, and the third number
              is normally zero.  For example, the 3.3.1 gcc version  is
              represented as 330.


       -[no-]global-hoist
              Enables  [disables]  hoisting  and  speculative  loads of
              global variables.


       -help  Print list of compiler options.


       -kernel (i64 only)
              Generates code for inclusion in the kernel. Prevents gen-
              eration  of  speculation  as support may not be available
              when code runs. Suppresses software pipelining.


       -long_double (i32, i32em only)
              Enable 80-bit 'long double'.  The -long_double option  is
              ON by default (80-bit) for L*X and M*X32.


       -mfixed-range=<range> (i64 only)
              Reserves  certain  registers  (<range>=f12-f15, f32-f127)
              for use by the kernel.


       -[no-]multibyte-chars
              Provide support for multi-byte characters.


       -nobss-init
              Place variables that are initialized with zeroes  in  the
              DATA section instead of the BSS section.


       -reserve-kernel-regs (i64 only)
              Reserves  registers  f12-f15  and f32-f127 for use by the
              kernel. These will not be used by the compiler.


       -[no-]sox
              Enable (DEFAULT) [disable] saving of compiler options and
              version in the executable.


       -V     Display compiler version information.


       -v     Show driver tool commands and execute tools.


       --version
              Display  GCC  style  version  information.  Note that two
              '-'s are required.


       -x <type>
              All source files found subsequent to -x  <type>  will  be
              recognized as one of the following types:

              c -- C source file

              c++ -- C++ source file

              c-header -- C header file

              cpp-output -- C pre-processed file

              c++-cpp-output -- C++ pre-processed file

              assembler -- Assembly file

              assembler-with-cpp -- Assembly file that needs to be pre-
              processed

              none -- Disable recognition, and revert to file extension


   Linking or Linker Options
       The   linking/linker  options  group  all  link-related  options
       together.


       -cxxlib-<mode>
              Tells  the  compiler to link using  certain  C++  runtime
              libraries.   You  can specify one of the following values
              for <mode>:

              gcc[=<dir>] -- Link using the C++ run-time libraries pro-
              vided  with  the  gcc compiler.  The <dir>parameter is an
              optional top-level location  for  the  gcc  binaries  and
              libraries.

              icc  -- Link using the C++ run-time libraries provided by
              Intel.



       -dynamic-linker<filename>
              Select  a  dynamic  linker  (filename)  other  than   the
              default.


       -dynamiclib (i32, M*X32 only)
              Invokes   the   libtool   command   to  generate  dynamic
              libraries.


       -i-dynamic
              Link Intel provided libraries dynamically.


       -i-static
              Links Intel-provided libraries statically.


       -L<dir> or -l<dir>
              Instruct the linker to search for  a  specified   library
              <dir> when linking.  Because the linker searches and pro-
              cesses libraries and object files in the order they   are
              specified,  specify this option following the last appli-
              cable object file.


       -mcmodel=<mem_model> (i32, L*X only)
              Tells the compiler to use a specific memory model to gen-
              erate code and store data.  Default is -mcmodel=small.


       -m[no-]relax (i64 only)
              Pass  [do  not  pass]  -relax  to the linker.  (DEFAULT =
              -mno-relax)


       -no-cpprt
              Do not link in C++ runtime libraries.


       -nodefaultlibs
              Do not use standard libraries when linking.


       -nostartfiles
              Do not use standard startup files when linking.


       -nostdlib
              Do not use standard  libraries  and  startup  files  when
              linking.


       -shared  (not on M*X32)
              Produce a shared object.


       -shared-libcxa
              Link Intel libcxa C++ library dynamically, overriding the
              default behavior when -static is used.  This  option  has
              the  opposite  effect of -static-libcxa. When this option
              is used, the Intel-provided libcxa C++ library is  linked
              in  dynamically, allowing the user to override the static
              linking behavior when the -static option is used.


       -static  (not on M*X32)
              Prevent linking with shared libraries.  Causes  the  exe-
              cutable  to  link all libraries statically, as opposed to
              dynamically.


       -static-libcxa
              Link Intel libcxa C++ library statically. By default, the
              Intel-provided  libcxa  C++  library is linked in dynami-
              cally. Use -static-libcxa on the  command  line  to  link
              libcxa  statically,  while  still  allowing  the standard
              libraries to be linked in by the default behavior.


       -T <file>
              Direct linker to read link commands from <file>.


       -u <symbol>
              Pretend the <symbol> is undefined.


       -Wa<o1>[,<o2>,...]


       -Wl,<o1>[,<o2>,...]


       -Wl,<o1>[,<o2>,...]
              Pass options o1, o2, etc. to the linker for processing.


       -Xlinker <val> (i32, i32em only)
              Pass <val> directly to the linker for processing.


   Mac OS Options
       The Mac OS options provide specific capabilities that apply only
       to  the  Intel  C++ compiler for the Mac OS.  Most other i32 C++
       compiler options (except those identified with a (not on  M*X32)
       notation) also apply to the Mac OS.


       -F<dir> (M*X32 only)
              Add  a framework directory to the head of an include file
              search path.


       -fpascal-strings (M*X32 only)
              Allow for Pascal-style string literals.


       -malign-mac68k (M*X32 only)
              Aligns structure fields on 2-byte boundaries  (m68k  com-
              patible).


       -malign-natural (M*X32 only)
              Aligns  larger  types  on  natural  size-based boundaries
              (overrides ABI).


       -malign-power (M*X32 only)
              Aligns based on ABI-specified  alignment  rules  (default
              for M*X32 only).


       -mdynamic-no-pic (M*X32 only)
              Code  is  not  relocatable,  but  external references are
              relocatable.


   Optimization Levels
       The Intel C++ Compiler applies the following optimizations  when
       you invoke the -O1, -O2, or -O3 options:

       ·   Constant propagation

       ·   Copy propagation

       ·   Dead-code elimination

       ·   Global register allocation

       ·   Instruction scheduling

       ·   Loop unrolling (-O2, -O3 only)

       ·   Loop-invariant code movement

       ·   Partial redundancy elimination

       ·   Strength reduction/induction variable simplification

       ·   Variable renaming

       ·   Exception handling optimizations

       ·   Tail recursions

       ·   Peephole optimizations

       ·   Structure assignment lowering and optimizations

       ·   Dead store elimination

       ·   Loop-invariant code motion.

       Depending  on  the  Intel architecture, optimization options can
       have different effects. To specify optimizations for your target
       architecture,   refer  to  the  -O[0|1|2|3],  -fast,  -ax<code>,
       -x<code>, and related options.


   Optimizing Exclusively for Specific  Processors  (i32,  i32em  only)
       (not on M*X32)
       The -x{K|W|N|B|P|T} options target your program to run on a spe-
       cific Intel processor.  The resulting code might contain  uncon-
       ditional use of features that are not supported on other proces-
       sors.  If these options are used on a non-compatible  processor,
       the program might fail with an illegal instruction exception, or
       it might display other unexpected  behavior.   Do   not  specify
       this  option  if  the program will be executed on x86 processors
       not provided by Intel Corporation.  For  more  information,  see
       the Intel C++ Compiler User's Guide.


       Note:  The  -x<codes>  option is not supported on M*X32 for this
       release.  Compilations for M*X32 use the -xP  option  values  to
       generate code for Intel Pentium 4 Processors with Streaming SIMD
       Extensions 3 (SSE3).


   Automatic Processor-specific Optimization (i32, i32em only) (not  on
       M*X32)
       The   -ax{K|W|N|B|P|T}  options  direct  the  compiler  to  find
       opportunities to generate separate versions  of  functions  that
       use  instructions  supported on the specified processors. If the
       compiler finds such an opportunity, it first checks whether gen-
       erating  a processor-specific version of a function is likely to
       result in a performance gain. If so, the compiler generates both
       a processor-specific version of a function and a generic version
       of the function. The generic version will run on any IA-32  pro-
       cessor.

       At run time, one of the versions is chosen to execute, depending
       on the current processor. In this way, the program  can  benefit
       from  performance gains on more advanced processors, while still
       working properly on older processors.

       The disadvantages of using -ax{K|W|N|B|P|T} are:

       ·   The size of the compiled binary increases  because  it  con-
           tains  both a processor-specific version of some of the code
           and a generic version of the code.

       ·   Performance is affected by the run-time checks to  determine
           which code to run.


   Interprocedural Optimizations (IPO)
       Use  -ip and -ipo[value] to enable interprocedural optimizations
       (IPO), which allow the compiler to analyze your code  to  deter-
       mine where to apply the following optimizations: inline function
       expansion, interprocedural constant propagation, monitoring mod-
       ule-level  static  variables, dead code elimination, propagation
       of function characteristics,  and  multifile  optimization.  For
       IA-32, IPO also passes arguments in registers.

       Inline  function expansion is one of the main optimizations per-
       formed by the interprocedural optimizer. For function calls that
       the  compiler  believes  are  frequently  executed, the compiler
       might decide to replace the instructions of the call  with  code
       for the function itself (inline the call).

       See the Intel C++ Compiler User's Guide for more complete infor-
       mation on IPO.


   Profile-guided Optimizations (PGO)
       Profile-guided optimizations (PGO) tell the compiler which areas
       of an application are most frequently executed. By knowing these
       areas, the compiler is able to use feedback from a previous com-
       pilation to be more selective in optimizing the application. For
       example, the use of PGO often enables the compiler to make  bet-
       ter  decisions  about  function inlining, thereby increasing the
       effectiveness of interprocedural optimizations.

       PGO creates an instrumented program from your  source  code  and
       special code from the compiler. Each time this instrumented code
       is executed, the instrumented program generates a dynamic infor-
       mation  file. When you compile a second time, the dynamic infor-
       mation files are merged into a summary file. Using  the  profile
       information  in this file, the compiler attempts to optimize the
       execution of the most heavily traveled paths in the program.

       The PGO methodology requires three phases:


       Phase 1:  Instrumentation   compilation   and    linking    with
                 -prof-gen[x]


       Phase 2:  Instrumented execution by running the executable


       Phase 3:  Feedback compilation with -prof-use

       See the Intel C++ Compiler User's Guide for more complete infor-
       mation on PGO.


   High-level Language Optimizations (HLO)
       High-level language optimizations (HLO) exploit  the  properties
       of source code constructs, such as loops and arrays, in applica-
       tions developed in high-level  programming  languages,  such  as
       C++.    They   include   loop  interchange,  loop  fusion,  loop
       unrolling, loop  distribution,  unroll-and-jam,  blocking,  data
       prefetch,  scalar  replacement,  data  layout optimizations, and
       others.


   Vectorization Options (i32 only)
       The vectorizer is a component of the  Intel  C++  Compiler  that
       automatically  uses  SIMD instructions in the MMX, SSE, and SSE2
       instruction sets. The vectorizer detects operations in the  pro-
       gram  that  can  be  executed in parallel, and then converts the
       sequential program to process 2, 4, 8, or  16  elements  in  one
       operation, depending on the data type.

       The -x{K|W|N|B|P|T} and -ax{K|W|N|B|P|T} options enable the vec-
       torizer.  See the Intel C++ Compiler User's Guide for more  com-
       plete information on the vectorizer.


   Auto Parallelization Options
       The auto-parallelization feature of the Intel C++ Compiler auto-
       matically translates serial portions of the input  program  into
       equivalent  multithreaded  code.  The auto-parallelizer analyzes
       the dataflow of the program's loops and generates  multithreaded
       code  for  those  loops which can be safely and efficiently exe-
       cuted in parallel. This enables the  potential  exploitation  of
       the  parallel  architecture  found  in  symmetric multiprocessor
       (SMP) systems.

       The parallel run-time support provides the  same  run-time  fea-
       tures  found  in  OpenMP*,  such as handling the details of loop
       iteration modification, thread scheduling, and  synchronization.

       While  OpenMP directives enable serial applications to transform
       into parallel applications quickly, the programmer must  explic-
       itly  identify  specific  portions  of the application code that
       contain parallelism and add the appropriate compiler directives.
       Auto-parallelization triggered by the -parallel option automati-
       cally identifies those loop structures that contain parallelism.
       During  compilation,  the  compiler  automatically  attempts  to
       decompose the code sequences into separate threads for  parallel
       processing. No other effort by the programmer is needed.


   Parallelization with OpenMP*
       The  Intel C++ Compiler supports the OpenMP* C++ version 2.0 API
       specification. The compiler performs transformations to generate
       multithreaded  code  based  on  the  user's  placement of OpenMP
       directives in the source program making it easy to add threading
       to  existing  software.  The  Intel compiler supports all of the
       current industry-standard OpenMP directives,  except  WORKSHARE,
       and compiles parallel programs annotated with OpenMP directives.
       In addition, the compiler provides Intel-specific extensions  to
       the  OpenMP  C++  version  2.0 specification including  run-time
       library routines and environment variables.

       Note: As with many advanced  features  of  compilers,  you  must
       properly  understand  the functionality of the OpenMP directives
       in order to use them  effectively  and  avoid  unwanted  program
       behavior.


       The Cluster OpenMP* (CLOMP or Cluster OMP) options are available
       under a separate license for the Cluster OpenMP product  (i32em,
       i64 only).



   Precompiled Headers
       The  Intel  C++ Compiler supports precompiled header (PCH) files
       to  significantly  reduce  compile  times  using   the   options
       described  below.  If many of your source files include a common
       set of header files, place the common headers first, followed by
       the  #pragma  hdrstop directive.  This pragma instructs the com-
       piler to stop generating PCH files.

       For example, if source1.cpp, source2.cpp,  and  source3.cpp  all
       include  common.h,  then place #pragma hdrstop after common.h to
       optimize compile times.  See the Intel C++ Compiler User's Guide
       for more complete information on Precompiled Headers.

       Caution:  Depending  on how you organize the header files listed
       in your sources, these options might increase compile time.


DEPRECATED AND REMOVED OPTIONS
       Occasionally, compiler options are marked as "deprecated."  Dep-
       recated  options are still supported in the current release, but
       are planned to be unsupported in future releases.

       Some compiler options are no  longer  supported  and  have  been
       removed.  If you use one of these options, the compiler issues a
       warning, ignores the option, and then proceeds with compilation.


   Deprecated Options
       The following options are deprecated in this release of the com-
       piler:

       -F     Suggested replacement -P.


       -fwritable-strings
              No suggested replacement.


       -Knopic, -KNOPIC
              Suggested replacement -fpic.


       -Kpic, -KPIC
              Suggested replacement -fpic.


       -Knopic, -KNOPIC
              Suggested replacement -fpic.


       -march=pentiumii
              Suggested replacement -march=pentium2.


       -march=pentiumiii
              Suggested replacement -march=pentium3.


       -pro-format-32
              No suggested replacement.


       -syntax
              Suggested replacement -fsyntax-only.


       -tpp5  No suggested replacement.


       -tpp6  No suggested replacement.


       -tpp7  No suggested replacement.


   Removed Options
       The following options are removed in this release  of  the  com-
       piler:


       -axi

       -axm

       -fdiv_check


       -ipo-obj, and -ipo_obj


       -0f_check


       -xi

       -xM

PREDEFINED MACROS
       The  predefined  macros available for the Intel C++ Compiler are
       described below.


       Intel C++ Compiler Predefined Macros


       __ARRAY_OPERATORS
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __BASE_FILE__
              Value on IA-32 -- Name of source file

              Value on EM64T -- Name of source file

              Value on Itanium Architecture -- Name of source file



       _BOOL  Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __cplusplus
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __DEPRECATED
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __EDG__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __EDG_VERSION__
              Value on IA-32 -- 304

              Value on EM64T -- 304

              Value on Itanium Architecture -- 304

       __ELF__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __EXCEPTIONS
              Value on IA-32 -- Defined as 1  when  -fno-exceptions  is
              not used.

              Value  on  EM64T  -- Defined as 1 when -fno-exceptions is
              not used.

              Value on  Itanium  Architecture  --  Defined  as  1  when
              -fno-exceptions is not used.


       __extension__
              Value on IA-32 -- no value

              Value on EM64T -- no value

              Value on Itanium Architecture -- no value


       __GNUC__
              Values on IA-32, EM64T, or Itanium Architecture --

              2 -- if gcc version is less than 3.2

              3 -- if gcc version is 3.2, 3.3, or 3.4

              4 -- if gcc version is 4.x


       __GNUC_MINOR__
              Values on IA-32, EM64T, or Itanium Architecture --

              95 -- if gcc version is less than 3.2

              2 -- if gcc version is 3.2

              3 -- if gcc version is 3.3

              4 -- if gcc version is 3.4


       __GNUC_PATCHLEVEL__
              Values on IA-32, EM64T, or Itanium Architecture --

              3 -- if gcc version is 3.x


       __gnu_linux__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __GXX_ABI_VERSION
              Value on IA-32 -- 102

              Value on EM64T -- 102

              Value on Itanium Architecture -- 102


       __HONOR_STD
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __i386 Value on IA-32 -- 1

              Value on EM64T -- NA

              Value on Itanium Architecture -- NA


       __i386__
              Value on IA-32 or EM64T -- 1

              Value on EM64T -- NA

              Value on Itanium Architecture -- NA


       i386   Value on IA-32 -- 1

              Value on EM64T -- NA

              Value on Itanium Architecture -- NA


       __ia64 Value on IA-32 -- NA

              Value on EM64T -- NA

              Value on Itanium Architecture -- 1


       __ia64__
              Value on IA-32 -- NA

              Value on EM64T -- NA

              Value on Itanium Architecture -- 1


       __ICC  Value on IA-32 -- 910

              Value on EM64T -- 910

              Value on Itanium Architecture -- NA

              Notes -- Assigned value refers to the compiler (e.g., 800
              is 8.00). Supported for legacy reasons. Use  __INTEL_COM-
              PILER instead.


       _INTEGRAL_MAX_BITS
              Value on IA-32 -- NA

              Value on EM64T -- NA

              Value on Itanium Architecture -- 64


       __INTEL_COMPILER
              Value on IA-32 -- 910

              Value on EM64T -- 910

              Value on Itanium Architecture -- 910

              Notes -- Defines the compiler version. Defined as 910 for
              the Intel C++ Compiler 9.1.


       __INTEL_COMPILER_BUILD_DATE=<YYYYMMDD>

              Notes -- Defines the  compiler  build  date.   This  date
              should  correspond  to  the  date on the compiler version
              banner.  Applies to IA-32, EM64T, and  Itanium  Architec-
              ture.


       __INTEL_CXXLIB_ICC

              Notes  --  Is defined (default) as 1 when the -cxxlib-icc
              option is specified during compilation.  Applies to  both
              IA-32 and Itanium Architecture, but not to EM64T.


       __INTEL_RTTI__

              Notes  --  Is defined (default) when the -frtti option is
              specified for the Intel Linux C++  compiler  (i.e.,  when
              RTTI  support  is  enabled).  It is disabled when the the
              -fno-rtti option is specified for  the  Intel  Linux  C++
              compiler.  Applies to IA-32, EM64T, and Itanium Architec-
              ture.



       __INTEL_STRICT_ANSI__

              Notes --  Is defined (default) as 1 when the -strict_ansi
              option  is  specified  for  the  Intel Linux C++ compiler
              (i.e., strict  ANSI  conformance  dialect).   Applies  to
              IA-32, EM64T, and Itanium Architecture.


       __itanium__
              Value on IA-32 -- NA

              Value on EM64T -- NA

              Value on Itanium Architecture -- 1


       __linux
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __linux__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       linux  Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __LONG_DOUBLE_SIZE__
              Value on IA-32 -- 80

              Value on EM64T -- 80

              Value on Itanium Architecture -- 80


       __LONG_MAX__
              Value on IA-32 -- NA

              Value on EM64T -- 9223372036854775807L

              Value on Itanium Architecture -- 9223372036854775807L


       __lp64 Value on IA-32 -- NA

              Value on EM64T -- NA

              Value on Itanium Architecture -- 1


       __LP64__
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       _LP64  Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       _MT    Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __MMX__
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __NO_INLINE__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __NO_MATH_INLINES
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __NO_STRING_INLINES
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       _OPENMP
              Value on IA-32 -- 200203

              Value on EM64T -- 200203

              Value on Itanium Architecture -- 200203

              Notes -- Defined when -openmp is used.


       __OPTIMIZE__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1

              Notes -- Not enabled if all optimizations are turned off.


       __pentium4
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __pentium4__
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __PIC__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1

              Notes -- Defined when -fPIC is used.



       __pic__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1

              Notes -- Defined when -fPIC is used.


       _PGO_INSTRUMENT
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1

              Notes  --  Defined  when  compiled   with   either
              -prof_gen or -prof_genx.


       _PLACEMENT_DELETE
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __PTRDIFF_TYPE__
              Value on IA-32 -- int

              Value on EM64T -- long

              Value on Itanium Architecture -- long


       __REGISTER_PREFIX__
              Value on IA-32 -- no value

              Value on EM64T -- no value

              Value on Itanium Architecture -- no value


       __SIGNED_CHARS__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __SIZE_TYPE__
              Value on IA-32 -- unsigned

              Value on EM64T -- unsigned long

              Value on Itanium Architecture -- unsigned long


       __SSE__
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __SSE2__
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __unix Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __unix__
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       unix   Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __USER_LABEL_PREFIX__
              Value on IA-32 -- (no value)

              Value on EM64T -- (no value)

              Value on Itanium Architecture -- (no value)


       __WCHAR_T
              Value on IA-32 -- 1

              Value on EM64T -- 1

              Value on Itanium Architecture -- 1


       __WCHAR_TYPE__
              Value on IA-32 -- long int

              Value on EM64T -- int

              Value on Itanium Architecture -- int


       __WINT_TYPE__
              Value on IA-32 -- unsigned int

              Value on EM64T -- unsigned int

              Value on Itanium Architecture -- unsigned int


       __x86_64
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA


       __x86_64__
              Value on IA-32 -- NA

              Value on EM64T -- 1

              Value on Itanium Architecture -- NA



   ANSI/ISO Macros Included with the Compiler
       The  ANSI/ISO  standard for C language requires that cer-
       tain predefined macros be supplied with  conforming  com-
       pilers.  The  Intel  C++  Compiler supplies the following
       macros in accordance with this standard, as well as addi-
       tional predefined macros:



       __DATE__
              The date of compilation as a string literal in the
              form Mmm dd yyyy.


       __FILE__
              A string literal representing the name of the file
              being compiled.


       __LINE__
              The current line number as a decimal constant.


       __STDC__
              The  name  __STDC__  is defined when compiling a C
              translation unit.


       __STDC_HOSTED__
              The __STDC_HOSTED__ macro has a value of 1.


       __TIME__
              The time of compilation. As a  string  literal  in
              the form hh:mm:ss.

   gcc Predefined Macros
       The  Intel C++ Compiler includes the following predefined
       interoperability macros also supported by gcc:

       __GNUC__

       __GNUC_MINOR__

       __GNUC_PATCHLEVEL__

       You can specify the -no-gcc option if  you  do  not  want
       these  macros  defined.  If you need gcc interoperability
       (-cxxlib-gcc),  do not use the -no-gcc compiler option.

   Suppress Macro Definition
       Use the -Uname option to suppress  any  macro  definition
       currently in effect for the specified name. The -U option
       performs the same  function  as  an  #undef  preprocessor
       directive.

ENVIRONMENT VARIABLES
       You can customize your environment by setting the follow-
       ing environment variables. You can  specify  paths  where
       the  compiler  can  search  for  special  files  such  as
       libraries and include files.


       DYLD_LIBRARY_PATH  (M*X32 only)
              Specifies  the  location  for  all  Intel-provided
              shared  dynamic libraries.  At runtime, the linker
              will search the colon-separated list  of  directo-
              ries  defined by the DYLD_LIBRARY_PATH environment
              variable.  A DYLD_* set of  environment  variables
              are  all  used by "dyld", the dynamic link editor.
              The full DYLD_* set is documented in "man dyld" on
              the MacOS*.


       GXX_ROOT
              Specifies  the  location of the gcc binaries.  Set
              this variable only when the compiler cannot locate
              the  gcc binaries when using the -gcc-name option.


       GXX_INCLUDE
              Specifies the location of the  gcc  headers.   Set
              this variable only when the compiler cannot locate
              the gcc headers when using the -gcc-name option.


       IA32ROOT  (i32, 132em only)
              Points to the directory containing the  bin,  lib,
              include and substitute header directories.


       IA64ROOT (i64 only)
              Points  to  the directory containing the bin, lib,
              include and substitute header directories.


       ICCCFG Specifies the configuration file  for  customizing
              compilations with the icc compiler.


       ICPCCFG
              Specifies  the  configuration file for customizing
              compilations with the icpc compiler.


       INTEL_LICENSE_FILE
              Specifies the location for the Intel license file.


       LD_LIBRARY_PATH (L*X only)
              Specifies  the  location  for  all  Intel-provided
              libraries. The LD_LIBRARY_PATH  environment  vari-
              able  contains  a colon-separated list of directo-
              ries in which the linker will search  for  library
              (.a) files. If you want the linker to search addi-
              tional libraries,  you  can  add  their  names  to
              LD_LIBRARY_PATH,   to   the  command  line,  to  a
              response file, or to the  configuration  file.  In
              each case, the names of these libraries are passed
              to the  linker  before  the  names  of  the  Intel
              libraries that the driver always specifies.


       PATH   Specifies  the directories the system searches for
              binary executable files.


       TMP    Specifies the directory in which to  store  tempo-
              rary  files.   If  the  directory specified by TMP
              does not exist, the compiler places the  temporary
              files  in  the current directory.   If a directory
              is not specified, the  compiler  stores  temporary
              files in /tmp.


       TMPDIR Same as TMP.


       TEMP   Same as TMP.

   GNU* Environment Variables
       The  Intel  C++ Compiler supports the following GNU envi-
       ronment variables:


       C_INCLUDE_PATH
              Specifies a list of directories to include  for  C
              compilations.


       CPATH  Specifies  a  list of directories to include for C
              or C++ compilations.


       CPLUS_INCLUDE_PATH
              Specifies a list of directories to include for C++
              compilations.


       DEPENDENCIES_OUTPUT
              If  this  variable is set, its value specifies how
              to output dependencies for Make based on the  non-
              system  header  files  processed  by the compiler.
              System header files are ignored in the  dependency
              output.


       LIBRARY_PATH
              The  value  of  LIBRARY_PATH  is a colon-separated
              list of directories, much like PATH.


       SUNPRO_DEPENDENCIES
              This variable is the same as  DEPENDENCIES_OUTPUT,
              except that system header files are not ignored.

   Compilation Environment Options
       The   Intel  C++  Compiler  installation  includes  shell
       scripts that you can use to  set  environment  variables.
       See the Intel C++ User's Guide for more information.



   Standard OpenMP Environment Variables
       OMP_DYNAMIC
              Enables (.TRUE.) or disables (.FALSE.) the dynamic
              adjustment of the number of threads.

              DEFAULT: .FALSE.


       OMP_NESTED
              Enables (.TRUE.) or disables (.FALSE.) nested par-
              allelism.

              DEFAULT: .FALSE.


       OMP_NUM_THREADS
              Sets  the  number  of threads to use during execu-
              tion.

              DEFAULT: Number of processors currently  installed
              in the system while generating the executable


       OMP_SCHEDULE
              Specifies  the  run-time  schedule  type and chunk
              size.

              DEFAULT: STATIC, no chunk size specified



   Intel Extensions to OpenMP Environment Variables
       KMP_ALL_THREADS
              Sets the maximum number of  threads  that  can  be
              used by any parallel region.

              DEFAULT:  max(32,  4 * OMP_NUM_THREADS, 4 * number
              of processors)


       KMP_BLOCKTIME
              Sets the time  (in  milliseconds)  that  a  thread
              should  wait  after  completing the execution of a
              parallel region, before sleeping.   See  also  the
              throughput execution mode section of the User doc-
              umentation, and the KMP_LIBRARY environment  vari-
              able.  Use  the optional character suffix s, m, h,
              or d, to specify seconds, minutes, hours, or days

              DEFAULT: 200 milliseconds


       KMP_LIBRARY
              Selects the OpenMP  run-time  library  throughput.
              The  options  for  the variable value are: serial,
              turnaround, or throughput indicating the execution
              mode.  The  default value of throughput is used if
              this variable is not specified.

              DEFAULT: throughput (execution mode)


       KMP_MONITOR_STACKSIZE
              Sets the number of bytes to allocate for the moni-
              tor  thread  (used for book-keeping during program
              execution). U se the optional suffix b, k,  m,  g,
              or  t,  to  specify  bytes,  kilobytes, megabytes,
              gigabytes, or terabytes.

              DEFAULT:  max(32k,  system  minimum  thread  stack
              size)


       KMP_STACKSIZE
              Sets the number of bytes to allocate for each par-
              allel thread to use as its private stack.  Use the
              optional  suffix  b,  k,  m,  g,  or t, to specify
              bytes, kilobytes, megabytes,  gigabytes,  or  ter-
              abytes.

              DEFAULT:

              i32: 2m

              i64: 4m


       KMP_VERSION
              Enables  (set) or disables (unset) the printing of
              OpenMP run-time library version information during
              program execution.

              DEFAULT: Disabled


   PGO Environment Variables
       The  following environment values determine the directory
       in which to store dynamic information files or whether to
       overwrite pgopti.dpi.


       PROF_DIR
              Specifies  the directory in which dynamic informa-
              tion files are created. This variable  applies  to
              all three phases of the profiling process.


       PROF_DUMP_INTERVAL
              Initiate  Interval  Profile  Dumping in an instru-
              mented   application.    The    _PGOPTI_Set_Inter-
              val_Prof_Dump(int   interval)  function  activates
              Interval Profile Dumping and sets the  approximate
              frequency at which dumps will occur.  The interval
              parameter is measured in milliseconds  and  speci-
              fies  the  time  interval at which profile dumping
              will occur. An alternative  method  of  initiating
              Interval  Profile Dumping is by setting this envi-
              ronment variable. Set this environment variable to
              the  desired  interval value prior to starting the
              application.


       PROF_NO_CLOBBER
              Alters the feedback compilation phase slightly. By
              default,  during  the  feedback compilation phase,
              the compiler merges  the  data  from  all  dynamic
              information  files  and  creates  a new pgopti.dpi
              file, if the .dyn files are newer than an existing
              pgopti.dpi file.

              When  this  variable is set, the compiler does not
              overwrite the existing pgopti.dpi  file.  Instead,
              the  compiler issues a warning and you must remove
              the pgopti.dpi file if you want to use  additional
              dynamic information files.


EXAMPLES
       The following examples demonstrate optimizing across mul-
       tiple input files:

         1.  icc ax.cpp

             This command compiles the C++ file 'ax.cpp'
             producing executable file 'a.out'. Optimizations
             occur by default.

         2.  icc -o abc ax.cpp bx.cpp cx.cpp

             This command uses option -o to name the
             executable file 'abc' and compiles 'ax.cpp',
             'bx.cpp', and 'cx.cpp' as one program.

         3.  icc -c ax.cpp bx.cpp cx.cpp

             This command uses option -c to suppress
             linking and produce individual object
             files 'ax.o', 'bx.o', and 'cx.o'. Interprocedural
             optimizations are prevented.

         4.  icc -c ay.c

             This command compiles the C file 'ay.c' and the
             -c option suppresses linking to produce of an
             object file 'ay.o'.

         5.  icpc -c by.cpp

             This command compiles the C++ file 'by.cpp' and
             the -c option suppresses linking to produce an
             object file 'by.o'.

         6.  icpc ay.o by.o

             This command links the two object files 'ay.o'
             and 'by.o' and produces an executable
             file 'a.out'.

         7.  icc -c -O1 sub2.cpp
             icc -c -O1 sub3.cpp
             icc -o main.exe -g -O0 main.cpp sub2.o sub3.o

             The first two commands show incremental
             compilation with minimal optimization.
             The first command generates an object
             file of 'sub2'; the second generates
             an object file of 'sub3'.

             The last command uses option -O0 to
             disable all compiler default optimizations.
             It uses option -g to generate symbolic
             debugging information and line numbers in
             the object code, which can be used by a
             source-level debugger.


TECHNICAL SUPPORT
       The Intel C++ Compiler product web site offers timely and
       comprehensive product information, including product fea-
       tures, white papers, and technical articles. For the lat-
       est  information,  visit http://developer.intel.com/soft-
       ware/products/.

       Intel also provides a support web site  that  contains  a
       rich  repository of self help information, including get-
       ting started tips, known product issues, product  errata,
       license information, user forums, and more.

       Registering  your  product  entitles  you  to one year of
       technical support and product updates through Intel  Pre-
       mier  Support.  Intel  Premier  Support is an interactive
       issue management and communication web site that  enables
       you  to  submit  issues  and  review their status, and to
       download product updates anytime of the day.

       To register your product, contact Intel, or seek  product
       support,    please    visit:   http://www.intel.com/soft-
       ware/products/support.

SEE ALSO
       The Intel C++ Compiler User's  Guide  is  the  definitive
       source  for  detailed  information on using the Intel C++
       Compiler, including a complete listing  of  all  compiler
       options, and much more.

       In addition, see these other documents:

       ·   Product Release Notes

       ·   Intel Itanium Assembler User's Guide

       ·   Intel  Itanium  Architecture Assembly Language Refer-
           ence Guide

       You     can     access     these      documents      from
       <install-dir>/doc/Doc_Index.htm   or  from  http://devel-
       oper.intel.com/software/products/compilers/ .

COPYRIGHT INFORMATION
       Copyright (C) 2002 - 2006, Intel Corporation. All  rights
       reserved.

       *  Other  brands  and  names  are  the  property of their
       respective owners.



Copyright(C) 2002 - 2006       Intel Corporation                        ICC(1)