icc [options] file1 [file2 ...]

       where:

       · options represents zero or more compiler options.

       · fileN  represents  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 - icc

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

       This  document  explains how information and instructions apply differ-
       ently to IA-32 architectures, Intel(R) 64 architectures. If a  descrip-
       tion  does  not  explicitly  state  a specific architecture, assume the
       description is applicable to all. See the Intel(R) C++ Compiler XE Doc-
       umentation for more detailed information than what is presented here.

       This man page is intended for Linux* OS and Mac OS* X users.

       Most language features are available on all supported systems; however,
       some language features are only available on certain  processors  or  a
       certain  operating  system.  Such  language features are labeled within
       parenthesis as follows:


       i32               Means the feature is available on IA-32 architecture.

       i64em             Means  the feature is available on Intel(R) 64 archi-
                         tecture.

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

       M*X               Means the feature is available on all  Intel(R)-based
                         systems  running  Mac  OS* X. In a few circumstances,
                         the underlying architecture has bearing, so in  those
                         cases:

                         M*X32          --  Means  the feature is available on
                                        systems based  on  IA-32  architecture
                                        that are running Mac OS* X.

                         M*X64          --  Means  the feature is available on

       generated  by  the  second  compiler, and the resulting executable runs
       successfully. Some GNU gcc* versions are not interoperable,  some  ver-
       sions  are  interoperable. By default, the Intel compiler will generate
       code that is interoperable with the version of gcc  it  finds  on  your
       system.

       The Intel(R) C++ Compiler options that affect GNU gcc* interoperability
       include:

       · -cxxlib

       · -gcc-name

       · -gcc-version

       · -gxx-name

       · -fabi-version

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

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


OPTION SUMMARIES

   Option Alphabetic Summary
       This section includes  an  alphabetic  listing  of  available  Intel(R)
       C++Compiler options.

       After  each  listing  is  a  reference  to  the Functional area where a
       detailed description of the option appears. See Deprecated and  Removed
       Options for additional information.

       -Aname[(value)]

              Specifies an identifier for an assertion.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              name              Is the identifier for the assertion.

              value             Is  an  optional value for the assertion. If a
                                value is specified, it must be within  quotes,
                                including the parentheses delimiting it.

              Default:

              OFF               Assertions   have  no  identifiers  or  symbol
                                names.

       -no-alias-const

              Determines whether the compiler  assumes  a  parameter  of  type
              pointer-to-const  does  not  alias  with  a  parameter  of  type
              pointer-to-non-const.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-alias-const   The compiler uses standard C/C++ rules for the
                                interpretation of const.

              Description:

              This  option determines whether the compiler assumes a parameter
              of type pointer-to-const does not alias with a parameter of type
              pointer-to-non-const.  It  implies  an  additional attribute for
              const.

              This functionality complies with the input/output  buffer  rule,
              which  assumes  that  input  and  output buffer arguments do not
              overlap.  This option allows the compiler to do some  additional
              optimizations with those parameters.

              In  C99,  you  can  also get the same result if you additionally
              declare your pointer parameters with the restrict keyword.

              Alternate Options:

              None

       -align

       -noalign

              Determines whether variables and arrays are naturally aligned.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Variables and arrays are aligned according  to

              long double       16 bytes

              If you are  not  interacting  with  system  libraries  or  other
              libraries  that  are  compiled  without  -align, this option can
              improve performance by reducing misaligned accesses.

              CAUTION: If you are interacting with system libraries  or  other
              libraries that are compiled without -align, your application may
              not perform as expected.

              Alternate Options:

              None

       -ansi


              Enables language compatibility with the gcc option  ansi.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               GNU C++ is more strongly supported than
                                ANSI C.

              Description:

              This  option  enables language compatibility with the gcc
              option -ansi and provides the same level of ANSI standard
              conformance as that option.

              This option sets option fmath-errno.

              If you want strict ANSI conformance, use the -strict-ansi
              option.

              Alternate Options:

              None

       -ansi-alias

       -no-ansi-alias

              Enable use of ANSI aliasing rules in optimizations.

              adheres to ISO C Standard aliasability rules.

              If your program adheres to these rules, then this  option
              allows  the compiler to optimize more aggressively. If it
              doesn't adhere to these rules, then it can cause the com-
              piler to generate incorrect code.

              When   you   specify  -ansi-alias  or  /Qansi-alias,  the
              ansi-alias checker is enabled by default.  To disable the
              ansi-alias checker, you must specify -no-ansi-alias-check
              (Linux and Mac OS X) or /Qansi-alias-check- (Windows).

              Alternate Options:

              Linux and Mac OS X: -fstrict-aliasing

              Windows: None

       -ansi-alias-check

       -no-ansi-alias-check

              Enables or disables the ansi-alias checker.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-ansi-alias-check
                                The  ansi-alias  checker  is   disabled
                                unless   option   -ansi-alias-check  or
                                /Qansi-alias-check has been  specified.

              Description:

              This  option  enables or disables the ansi-alias checker.
              The ansi-alias checker checks the source code for  poten-
              tial  violations  of  ANSI  aliasing  rules  and disables
              unsafe optimizations related to the code for those state-
              ments that are identified as potential violations.

              You  can use option –Wstrict-aliasing to identify poten-
              tial violations.

              If  option  -ansi-alias   (Linux  and  Mac   OS   X)   or
              /Qansi-alias    (Windows)   has   been   specified,   the
              ansi-alias checker is enabled by default.   You  can  use
              option  -no-ansi-alias-check  or  /Qansi-alias-check-  to
              Architectures: Intel® 64 architecture

              Arguments:

              None

              Default:

              OFF               The optimization is not attempted.

              Description:

              This option instructs the compiler to analyze the program
              to  determine  if  there  are 64-bit pointers that can be
              safely shrunk into 32-bit  pointers   and  if  there  are
              64-bit  longs  (on  Linux*  OS) that can be safely shrunk
              into 32-bit longs.

              For this option to be effective,  the  compiler  must  be
              able  to optimize using the -ipo  (Linux OS and Mac OS X)
              or /Qipo (Windows OS) option and must be able to  analyze
              all  library  calls  or external calls the program makes.
              This option has no effect on Linux*  systems  unless  you
              specify  setting  SSE3 or higher for option -x (Linux and
              Mac OS X).

              This option requires that the size of  the  program  exe-
              cutable  never  exceeds 232 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 may occur.

              Alternate Options:

              None

       -auto-p32 (L*X only)

              Instructs  the  compiler to analyze the program to deter-
              mine if there are 64-bit  pointers  that  can  be  safely
              shrunk to 32-bit pointers.

              Architectures: Intel® 64 architecture

              Arguments:

              None

              Default:

              OFF               The optimization is not performed.
              otherwise, unpredictable results can occur.

              Alternate Options:

              None

       -axcode

              Tells  the  compiler to generate multiple, processor-spe-
              cific auto-dispatch code paths for  Intel  processors  if
              there is a performance benefit.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              code              Indicates the instructions to be gener-
                                ated for the set of processors in  each
                                description. The following descriptions
                                refer to Intel® Streaming  SIMD  Exten-
                                sions  (Intel®  SSE)  and  Supplemental
                                Streaming   SIMD   Extensions   (Intel®
                                SSSE). Possible values are:

                                CORE-AVX2      May    generate   Intel®
                                               Advanced  Vector  Exten-
                                               sions  2  (Intel® AVX2),
                                               Intel®   AVX,    SSE4.2,
                                               SSE4.1,   SSSE3,   SSE3,
                                               SSE2, and  SSE  instruc-
                                               tions for Intel® proces-
                                               sors.

                                CORE-AVX-I     May   generate    Intel®
                                               Advanced  Vector  Exten-
                                               sions   (Intel®    AVX),
                                               including   instructions
                                               in Intel® Core 2™  pro-
                                               cessors in process tech-
                                               nology   smaller    than
                                               32nm,   SSE4.2,  SSE4.1,
                                               SSSE3, SSE3,  SSE2,  and
                                               SSE   instructions   for
                                               Intel® processors.

                                AVX            May   generate    Intel®
                                               Advanced  Vector  Exten-
                                               sions   (Intel®    AVX),
                                               SSE4.2,  SSE4.1,  SSSE3,
                                               SSE3,  SSE2,   and   SSE
                                               instructions  for Intel®
                                               processors.

                                SSSE3          May   generate    Intel®
                                               SSSE3,  SSE3,  SSE2, and
                                               SSE   instructions   for
                                               Intel   processors.  For
                                               Mac OS* X systems,  this
                                               value  is only supported
                                               on Intel®  64  architec-
                                               ture.    This   replaces
                                               value T, which is depre-
                                               cated.

                                SSE3           May    generate   Intel®
                                               SSE3,  SSE2,   and   SSE
                                               instructions  for  Intel
                                               processors. For Mac  OS*
                                               X systems, this value is
                                               only supported on  IA-32
                                               architecture.       This
                                               replaces value P,  which
                                               is deprecated.

                                SSE2           May generate Intel® SSE2
                                               and SSE instructions for
                                               Intel  processors.  This
                                               value is  not  available
                                               on  Mac  OS* X  systems.
                                               This replaces  value  N,
                                               which is deprecated.

              Default:

              OFF               No  auto-dispatch  code  is  generated.
                                Processor-specific  code  is  generated
                                and  is  controlled  by  the setting of
                                compiler options -m and -x  (Linux)  or
                                compiler option -x (Mac OS* X).

              Description:

              This option tells the compiler to generate multiple, pro-
              cessor-specific auto-dispatch code paths for  Intel  pro-
              cessors if there is a performance benefit. It also gener-
              ates a baseline code path. The  Intel  processor-specific
              auto-dispatch  path  is  usually  more optimized than the
              baseline path. Other options, such  as  O3,  control  how
              much optimization is performed on the baseline path.

              The  baseline code path is determined by the architecture
              specified by options -m or -x (Linux and  Mac  OS  X)  or
              options  /arch or /Qx (Windows). While there are defaults
              for the -x or /Qx option that  depend  on  the  operating
              execute  on non-Intel processors compatible with the pro-
              cessor type specified by the -m or /arch option.

              The -ax and /Qax options tell the compiler to find oppor-
              tunities  to generate separate versions of functions that
              take advantage of features of the specified  Intel®  pro-
              cessor.

              If  the  compiler  finds  such  an  opportunity, it first
              checks whether generating a processor-specific version of
              a  function is likely to result in a performance gain. If
              this is the case, the compiler generates both  a  proces-
              sor-specific version of a function and a baseline version
              of the function. At run time, one of the versions is cho-
              sen  to execute, depending on the Intel processor in use.
              In this way, the program  can  benefit  from  performance
              gains  on  more  advanced  Intel  processors, while still
              working properly on older processors  and non-Intel  pro-
              cessors.  A non-Intel processor always executes the base-
              line code path.

              You can use more than one of the processor values by com-
              bining them. For example, you can specify -axSSE4.1,SSSE3
              (Linux and Mac OS X) or /QaxSSE4.1,SSSE3  (Windows).  You
              cannot  combine the old style, deprecated options and the
              new options. For example, you cannot specify  -axSSE4.1,T
              (Linux and Mac OS X) or /QaxSSE4.1,T (Windows).

              Previous  values  W and K are deprecated.  The details on
              replacements are as follows:

              · Mac OS X systems: On these systems, there is  no  exact
                replacement  for W or K. You can upgrade to the default
                option -msse3 (IA-32 architecture)  or  option  -mssse3
                (Intel® 64 architecture).

              · Windows  and  Linux  systems:  The replacement for W is
                -msse2 (Linux) or /arch:SSE2  (Windows).  There  is  no
                exact  replacement  for K. However, on Windows systems,
                /QaxK is interpreted as /arch:IA32; on  Linux  systems,
                -axK  is  interpreted as -mia32. You can also do one of
                the following:

                · Upgrade to option -msse2 (Linux) or option /arch:SSE2
                  (Windows).  This  will  produce one code path that is
                  specialized for Intel® SSE2. It will not run on  ear-
                  lier processors

                · Specify  the  two  option  combination -mia32 -axSSE2
                  (Linux) or /arch:IA32 /QaxSSE2 (Windows). This combi-
                  nation  will  produce  an executable that runs on any
                  processor with IA-32 architecture but with  an  addi-

              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  or  may not optimize to the same
              degree for non-Intel  microprocessors  for  optimizations
              that  are  not  unique  to  Intel microprocessors.  These
              optimizations include Intel® Streaming SIMD Extensions  2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3)  instruction sets and other optimizations.  Intel
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured by  Intel.   Microprocessor-dependent  opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              formance of any compiler or library; please let  us  know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -Bdir

              Specifies  a  directory  that can be used to find include
              files, libraries, and executables.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:
              find include files, libraries, and executables.

              The compiler uses dir as a prefix.

              For    include   files,   the   dir   is   converted   to
              -I/dir/include. This command is added to the front of the
              includes passed to the preprocessor.

              For  libraries, the dir is converted to -L/dir. This com-
              mand is added to the front of the standard -L  inclusions
              before system libraries are added.

              For executables, if dir contains the name of a tool, such
              as ld or as, the compiler will use it  instead  of  those
              found in the default directories.

              The  compiler  looks  for  include  files in dir /include
              while library files are looked for in dir.

              Another way to get the behavior of this option is to  use
              the environment variable GCC_EXEC_PREFIX.

              Alternate Options:

              None

       -Bdynamic (L*X only)

              Enables dynamic linking of libraries at run time.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Limited dynamic linking occurs.

              Description:

              This  option  enables dynamic linking of libraries at run
              time. Smaller executables are created  than  with  static
              linking.

              This  option  is placed in the linker command line corre-
              sponding to its location on the  user  command  line.  It
              controls  the  linking  behavior  of  any library that is
              passed using the command line.

              All libraries on the command line following option  -Bdy-
              Arguments:

              None

              Default:

              OFF               Default static linking occurs.

              Description:

              This option enables static linking of a user's library.

              This  option  is placed in the linker command line corre-
              sponding to its location on the  user  command  line.  It
              controls  the  linking  behavior  of  any library that is
              passed using the command line.

              All  libraries  on  the  command  line  following  option
              -Bstatic  are linked statically until the end of the com-
              mand line or until a -Bdynamic option is encountered. The
              -Bdynamic option enables dynamic linking of libraries.

              Alternate Options:

              None

       -Bsymbolic (L*X only)

              Binds  references  to  all global symbols in a program to
              the definitions within a user's shared library.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               When  a  program  is linked to a shared
                                library, it can override the definition
                                within the shared library.

              Description:

              This  option  binds references to all global symbols in a
              program  to  the  definitions  within  a  user's   shared
              library.

              This option is only meaningful on Executable Linkage For-
              mat (ELF) platforms that support shared libraries.

              Arguments:

              None

              Default:

              OFF               When  a  program  is linked to a shared
                                library, it can override the definition
                                within the shared library.

              Description:

              This  option binds references to all global function sym-
              bols in a program to  the  definitions  within  a  user's
              shared library.

              This option is only meaningful on Executable Linkage For-
              mat (ELF) platforms that support shared libraries.

              CAUTION: This option can have unintended side-effects  of
              disabling symbol preemption in the shared library.

              Alternate Options:

              None

       -c

              Prevents linking.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Linking is performed.

              Description:

              This option prevents linking. Compilation stops after the
              object file is generated.

              The compiler generates an object file for each C  or  C++
              source file or preprocessed source file. It also takes an
              assembler file and invokes the assembler to  generate  an
              object file.

              Alternate Options:

              OFF               No  comments are placed in preprocessed
                                source output.

              Description:

              This option places (or  preserves)  comments  in  prepro-
              cessed source output.

              Comments following preprocessing directives, however, are
              not preserved.

              Alternate Options:

              None

       -check-uninit

       -no-check-uninit

              Determines  whether  checking  occurs  for  uninitialized
              variables.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-check-uninit  No checking  occurs  for  uninitialized
                                variables.

              Description:

              This option determines whether checking occurs for unini-
              tialized variables.  Option  -check-uninit  enables  this
              checking.

              If  a  variable  is read before it is written, a run-time
              error routine will be called.

              Run-time checking of undefined variables is  only  imple-
              mented  on local, scalar variables. It is not implemented
              on dynamically allocated variables, extern  variables  or
              static  variables.  It  is  not  implemented  on structs,
              classes, unions or arrays.

              Alternate Options:

              None


              Description:

              This  option  causes  serialization of code that contains
              Intel® Cilk™ Plus language extensions. This  means  that
              the  compiler  will run the program as if it were a C/C++
              serialized program.

              This option forces inclusion of  a  special  header  file
              (cilk_stub.h) that includes preprocessor macros that make
              certain specific keywords that are related to those  lan-
              guage extensions invisible to the compiler.

              The  serialization  of a program containing these special
              language extensions is described in Using Intel®  Cilk ™
              Plus.

              NOTE: Vector parallelism, which is generated by the array
              notations within Intel® Cilk™ Plus, is not  affected  by
              this compiler option.

              Alternate Options:

              None

       -complex-limited-range

       -no-complex-limited-range

              Determines  whether the use of basic algebraic expansions
              of some arithmetic operations involving data of type COM-
              PLEX is enabled.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-complex-limited-range
                                Basic   algebraic  expansions  of  some
                                arithmetic operations involving data of
                                type COMPLEX are disabled.

              Description:

              This option determines whether the use of basic algebraic
              expansions of some arithmetic operations  involving  data
              of type COMPLEX is enabled.


              Determines  whether  the  compile  links  using  the  C++
              run-time libraries and header files provided by gcc.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is an optional top-level  location  for
                                the gcc binaries and libraries.

              Default:

              C++: -cxxlib C: -no-cxxlib
                                For C++, the compiler uses the run-time
                                libraries and headers provided by  gcc.
                                For  C,  the  compiler uses the default
                                run-time libraries and headers and does
                                not link to any additional C++ run-time
                                libraries and headers. However, if  you
                                specify  compiler  option -std=gnu++98,
                                the default is -cxxlib.

              Description:

              This option determines whether the  compile  links  using
              the  C++  run-time libraries and header files provided by
              gcc.

              Option -cxxlib-nostd prevents the compiler  from  linking
              with the standard C++ library.

              Alternate Options:

              None

       -Dname[=value]

              Defines  a  macro  name  that  can  be associated with an
              optional value.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              name              Is the name of the macro.

              value             Is  an  optional integer or an optional
                                character string  delimited  by  double
                                quotes; for example, Dname=string.

              Default:
              lation directives. To use  this  option,  you  must  also
              specify option fpp.

              CAUTION:  On Linux* and Mac OS* X systems, if you are not
              specifying a value, do not use D  for  name,  because  it
              will conflict with the -DD option.

              Alternate Options:

              None

       -dD

              Same  as   option  -dM, but outputs #define directives in
              preprocessed source.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler  does  not output #define
                                directives.

              Description:

              Same as -dM, but outputs #define  directives  in  prepro-
              cessed  source. To use this option, you must also specify
              the E option.

              Alternate Options:

              None

       -debug[keyword]

              Enables or disables generation of debugging  information.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Is the type of debugging information to
                                be generated. Possible values are:

                                none           Disables  generation  of
                                               debugging information.

                                full or all    Generates       complete
                                               compiler       generates
                                               source position informa-
                                               tion  at  the expression
                                               level of granularity.

                                [no]inline-debug-info
                                               Determines  whether  the
                                               compiler       generates
                                               enhanced debug  informa-
                                               tion for inlined code.

                                [no]semantic-stepping
                                               Determines  whether  the
                                               compiler       generates
                                               enhanced  debug informa-
                                               tion useful  for  break-
                                               points and stepping.

                                [no]variable-locations
                                               Determines  whether  the
                                               compiler       generates
                                               enhanced  debug informa-
                                               tion useful  in  finding
                                               scalar  local variables.

                                extended       Sets   keyword    values
                                               semantic-stepping    and
                                               variable-locations.

                                [no]parallel (Linux only)
                                               Determines  whether  the
                                               compiler  generates par-
                                               allel debug code instru-
                                               mentations   useful  for
                                               thread data sharing  and
                                               reentrant   call  detec-
                                               tion.

              For information on the  non-default  settings  for  these
              keywords, see the Description section.

              Default:

              -debug none       No  debugging information is generated.

              Description:

              This option enables or disables generation  of  debugging
              information.

              Note  that  if  you  turn  debugging  on, optimization is
              turned off.
                                tion. It  is  the  same  as  specifying
                                -debug with no keyword.

              -debug minimal    Generates  line  number information for
                                debugging.

              -debug emit_column
                                Generates column number information for
                                debugging.

              -debug expr-source-pos
                                Generates  source  position information
                                at the statement level of  granularity.

              -debug inline-debug-info
                                Generates  enhanced  debug  information
                                for inlined code.

              On inlined functions, symbols are (by default) associated
              with  the  caller. This option causes symbols for inlined
              functions to be associated with the source of the  called
              function.

              -debug semantic-stepping
                                Generates  enhanced  debug  information
                                useful for breakpoints and stepping. It
                                tells the  debugger  to  stop  only  at
                                machine  instructions  that achieve the
                                final effect of a source statement.

              For example, in the case of an assignment statement, this
              might  be  a  store instruction that assigns a value to a
              program variable; for a function call, it  might  be  the
              machine   instruction   that  executes  the  call.  Other
              instructions generated for those  source  statements  are
              not displayed during stepping.

              This option has no impact unless optimizations have  also
              been enabled.

              -debug variable-locations
                                Generates  enhanced  debug  information
                                useful  in  finding  scalar local vari-
                                ables. It uses a feature of  the  Dwarf
                                object   module   known   as  "location
                                lists".

              This feature  allows  the  run-time  locations  of  local
              scalar  variables  to  be specified more accurately; that
              is, whether, at a given position in the code, a  variable
              value is found in memory or a machine register.

              object files and then added  to  the  executable  by  the
              linker.

              On  Mac  OS*  X systems, debuggers read debug information
              from object files. As a  result,  the  executables  don't
              contain  any debug information. Therefore, if you want to
              be able to debug on these systems, you  must  retain  the
              object files.

              Alternate Options:

              For -debug full, -debug all, or -debug
                                Linux and Mac OS X: -g

              For -debug inline-debug-info
                                Linux  and Mac OS X: -inline-debug-info
                                (this is a deprecated option)

              For -debug variable-locations
                                Linux and Mac OS X: -fvar-tracking

              For -debug semantic-stepping
                                Linux  and  Mac  OS   X:   -fvar-track-
                                ing-assignments

       -diag-type diag-list

              Controls the display of diagnostic information.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              type              Is an action to perform on diagnostics.
                                Possible values are:

                                enable         Enables   a   diagnostic
                                               message  or  a  group of
                                               messages.

                                disable        Disables  a   diagnostic
                                               message  or  a  group of
                                               messages.

                                error          Tells  the  compiler  to
                                               change   diagnostics  to
                                               errors.

                                warning        Tells  the  compiler  to
                                               change   diagnostics  to
                                               warnings.

                                               errors when  porting  to
                                               Linux*   systems.   This
                                               diagnostic group is only
                                               available   on  Windows*
                                               systems.

                                port-win       Specifies     diagnostic
                                               messages  for GNU exten-
                                               sions  that  may   cause
                                               errors  when  porting to
                                               Windows. This diagnostic
                                               group  is only available
                                               on Linux and Mac  OS*  X
                                               systems.

                                thread         Specifies     diagnostic
                                               messages  that  help  in
                                               thread-enabling  a  pro-
                                               gram.

                                vec            Specifies     diagnostic
                                               messages  issued  by the
                                               vectorizer.

                                par            Specifies     diagnostic
                                               messages  issued  by the
                                               auto-parallelizer  (par-
                                               allel optimizer).

                                openmp         Specifies     diagnostic
                                               messages issued  by  the
                                               OpenMP* parallelizer.

                                sc[n]          Enables  static security
                                               analysis  and  lets  you
                                               specify   the  level  of
                                               diagnostic      messages
                                               issued.  n can be any of
                                               the following: 1, 2,  3.
                                               For   more   details  on
                                               these values, see below.
                                               This value is equivalent
                                               to   deprecated    value
                                               sv[n].

                                warn           Specifies     diagnostic
                                               messages  that  have   a
                                               "warning"       severity
                                               level.

                                error          Specifies     diagnostic
                                               messages  that  have  an
                                               If you specify more than
                                               one message number, they
                                               must   be  separated  by
                                               commas. There can be  no
                                               intervening  white space
                                               between each "id".

                                tag[,tag,...]  Specifies  the  mnemonic
                                               name of one or more mes-
                                               sages.  If  you  specify
                                               more  than  one mnemonic
                                               name, they must be sepa-
                                               rated  by  commas. There
                                               can  be  no  intervening
                                               white space between each
                                               "tag".

                                The diagnostic messages  generated  can
                                be affected by certain options, such as
                                /arch or /Qx  (Windows)  or  -m  or  -x
                                (Linux and Mac OS X).

              Default:

              OFF               The  compiler issues certain diagnostic
                                messages by default.

              Description:

              This option controls the display of  diagnostic  informa-
              tion.  Diagnostic  messages  are  output to stderr unless
              compiler option -diag-file (Linux*  and  Mac  OS*  X)  or
              /Qdiag-file (Windows*) is specified.

              When  diag-list value "warn" is used with static security
              analysis diagnostics, the following behavior occurs:

              · Option -diag-enable warn (Linux) and /Qdiag-enable:warn
                (Windows) enable all diagnostics except those that have
                an "error" severity level. They enable all static secu-
                rity analysis warnings, cautions, and remarks.

              · Option   -diag-disable  warn  (Linux)  and  /Qdiag-dis-
                able:warn (Windows) disable all  static security analy-
                sis  diagnostics  except  those  that  have  an "error"
                severity level. They suppress all static security anal-
                ysis warnings, cautions, and remarks.

              The  following table shows more information on values you
              can specify for diag-list item sc.

              To disable  static security analysis, specify /Qdiag-dis-

              disable vec       Linux and Mac OS X: -vec-report0

              enable par        Linux and Mac OS X: -par-report

              disable par       Linux and Mac OS X: -par-report0

       -diag-dump

              Tells the compiler to print all enabled  diagnostic  mes-
              sages and stop compilation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler issues certain  diagnostic
                                messages by default.

              Description:

              This option tells the compiler to print all enabled diag-
              nostic messages and stop compilation. The diagnostic mes-
              sages are output to stdout.

              This  option prints the enabled diagnostics from all pos-
              sible diagnostics that the compiler can issue,  including
              any default diagnostics.

              If   -diag-enablediag-list   (Linux  and  Mac  OS  X)  or
              /Qdiag-enablediag-list (Windows) is specified, the  print
              out will include the diag-list diagnostics.

              Alternate Options:

              None

       -diag-enable sc-include (L*X only)

              Tells a source code analyzer to process include files and
              source files when issuing diagnostic messages.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              To use this option, you must also specify -diag-enable sc
              (Linux)  or  /Qdiag-enable:sc  (Windows)  to  enable  the
              static security analysis diagnostics.

              Alternate Options:

              Linux  and  Mac  OS X: -diag-enable sv-include (this is a
              deprecated option)

       -diag-error-limitn

       -no-diag-error-limit

              Specifies the maximum number  of  errors  allowed  before
              compilation stops.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the maximum number of error-level or
                                fatal-level compiler errors allowed.

              Default:

              30                A   maximum   of   30  error-level  and
                                fatal-level messages are allowed.

              Description:

              This  option  specifies  the  maximum  number  of  errors
              allowed  before compilation stops. It indicates the maxi-
              mum number of error-level or fatal-level compiler  errors
              allowed for a file specified on the command line.

              If  you specify -no-diag-error-limit (Linux and Mac OS X)
              or /Qdiag-error-limit- (Windows)  on  the  command  line,
              there  is  no  limit  on  the  number  of errors that are
              allowed.

              If the maximum number of errors  is  reached,  a  warning
              message  is issued and the next file (if any) on the com-
              mand line is compiled.

              Alternate Options:

              Linux and Mac OS X: -wn (this is a deprecated option)

       -diag-file[=filename] (L*X only)

              Causes the results of diagnostic analysis to be output to
              a file.
              This  option causes the results of diagnostic analysis to
              be output to a file. The file is placed  in  the  current
              working directory.

              You  can  include a file extension in filename. For exam-
              ple, if file.txt is specified, the  name  of  the  output
              file is file.txt. If you do not provide a file extension,
              the name of the file is filename.diag.

              If filename is not specified, the name  of  the  file  is
              name-of-the-first-source-file.diag. This is also the name
              of the file if the name specified for file conflicts with
              a source file name provided in the command line.

              NOTE:  If  you  specify -diag-file (Linux) or /Qdiag-file
              (Windows) and you also specify -diag-file-append  (Linux)
              or  /Qdiag-file-append  (Windows), the last option speci-
              fied on the command line takes precedence.

              Alternate Options:

              None

       -diag-file-append[=filename] (L*X only)

              Causes the results of diagnostic analysis to be  appended
              to a file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is the name of the file to be  appended
                                to. It can include a path.

              Default:

              OFF               Diagnostic   messages   are  output  to
                                stderr.

              Description:

              This option causes the results of diagnostic analysis  to
              be  appended to a file. If you do not specify a path, the
              driver will look for  filename  in  the  current  working
              directory.

              If  filename is not found, then a new file with that name
              is created in the current working directory. If the  name
              specified for file conflicts with a source file name pro-
              vided in the command  line,  the  name  of  the  file  is
              name-of-the-first-source-file.diag.
              Determines whether the compiler displays diagnostic  mes-
              sages by using their ID number values.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -diag-id-numbers  The compiler displays  diagnostic  mes-
                                sages  by using their ID number values.

              Description:

              This option  determines  whether  the  compiler  displays
              diagnostic  messages  by using their ID number values. If
              you specify -no-diag-id-numbers (Linux and Mac OS  X)  or
              /Qdiag-id-numbers-  (Windows),  mnemonic names are output
              for driver diagnostics only.

              Alternate Options:

              None

       -diag-onceid[,id,...]

              Tells the compiler to issue one or more  diagnostic  mes-
              sages only once.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              id                Is the ID number of the diagnostic mes-
                                sage.  If  you  specify  more  than one
                                message number, they must be  separated
                                by  commas. There can be no intervening
                                white space between each id.

              Default:

              OFF               The compiler issues certain  diagnostic
                                messages by default.

              Description:

              This option tells the compiler to issue one or more diag-
              nostic messages only once.

              Alternate Options:
              dir               Is the name of the directory where  the
                                results should be placed.

              Default:

              OFF               If static security analysis is enabled,
                                analysis results are placed in the cur-
                                rent   working   directory.   For  more
                                details, see below.

              Description:

              This option specifies a  directory  for  static  security
              analysis results.

              If  you do not specify dir, the results are placed in the
              current working directory.  Results are placed in a  sub-
              directory  with the name rnnnsc, where nnn is replaced by
              the next available sequence number (001, 002, etc.).

              NOTE: To use this option, you must enable static security
              analysis by specifying option –diag-enable sc[n] (Linux*
              OS) or /Qdiag-enable:sc[n] (Windows* OS).

              Alternate Options:

              None

       -dM

              Tells the compiler to output macro definitions in  effect
              after preprocessing.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not output macro def-
                                initions after preprocessing.

              Description:

              This  option  tells  the compiler to output macro defini-
              tions in effect after preprocessing. To use this  option,
              you must also specify the E option.

              Alternate Options:


              OFF               The  compiler  does  not output #define
                                directives.

              Description:

              Same as -dD, but output #define directives  contain  only
              macro  names.  To  use this option, you must also specify
              the E option.

              Alternate Options:

              None

       -dryrun

              Specifies that driver tool commands should be  shown  but
              not executed.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No tool commands are  shown,  but  they
                                are executed.

              Description:

              This option specifies that driver tool commands should be
              shown but not executed.

              Alternate Options:

              None

       -dumpmachine

              Displays the target machine and operating system configu-
              ration.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:


              Displays the version number of the compiler.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler does not display the com-
                                piler version number.

              Description:

              This option displays the version number of the  compiler.
              It does not compile your source files.

              Alternate Options:

              None

       -dynamic-linker file (L*X only)

              Specifies a dynamic linker other than the default.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              file              Is the name of the dynamic linker to be
                                used.

              Default:

              OFF               The default dynamic linker is used.

              Description:

              This option lets you specify a dynamic linker other  than
              the default.

              Alternate Options:

              None

       -dynamiclib (M*X only)

              Invokes   the   libtool   command   to  generate  dynamic
              libraries.


              When passed this option, the compiler  uses  the  libtool
              command  to  produce a dynamic library instead of an exe-
              cutable when linking.

              To build static  libraries,  you  should  specify  option
              -staticlib or libtool -static <objects>.

              Alternate Options:

              None

       -E

              Causes the preprocessor to send output to stdout.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Preprocessed source files are output to
                                the compiler.

              Description:

              This option causes the preprocessor  to  send  output  to
              stdout.  Compilation  stops when the files have been pre-
              processed.

              When you specify this option, the compiler's preprocessor
              expands  your source module and writes the result to std-
              out. The preprocessed source contains  #line  directives,
              which  the compiler uses to determine the source file and
              line number.

              Alternate Options:

              None

       -early-template-check

       -no-early-template-check

              Lets you semantically check  template  function  template
              prototypes before instantiation.

              Architectures: IA-32, Intel® 64 architectures

              prototypes  before instantiation. On Linux* OS platforms,
              gcc 3.4 (or newer)  compatibilty  modes  (i.e.  -gcc-ver-
              sion=340  and later) must be in effect. For all Mac OS* X
              platforms, gcc 4.0 (or newer) is required.

              Alternate Options:

              None

       -EP

              Causes the preprocessor to send output to  stdout,  omit-
              ting #line directives.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Preprocessed source files are output to
                                the compiler.

              Description:

              This  option  causes  the  preprocessor to send output to
              stdout, omitting #line directives.

              If you also specify option P or Linux* OS option  F,  the
              preprocessor will write the results (without #line direc-
              tives) to a file instead of stdout.

              Alternate Options:

              None

       -export

              Enables support for the C++ export template feature. This
              is a deprecated option.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  export  template  feature  is  not
              search path. This is a deprecated option.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the directory name  to  add  to  the
                                search path.

              Default:

              OFF               The   compiler   does   not   recognize
                                exported templates.

              Description:

              This option specifies a directory name for  the  exported
              template  search  path. To use this option, you must also
              specify the -export option.

              Directories in the search path are used to find the defi-
              nitions  of  exported  templates  and are searched in the
              order in which they are specified  on  the  command-line.
              The  current  directory  is always the first entry in the
              search path.

              Alternate Options:

              None

       -Fa[filename|dir]

              Specifies that an assembly listing file should be  gener-
              ated.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is the name  of  the  assembly  listing
                                file.

              dir               Is  the directory where the file should
                                be placed. It can include filename.

              Default:

              OFF               No assembly listing file is produced.

              Description:

              This option  specifies  that  an  assembly  listing  file

              Arguments:

              dir               Is  the  name  for the framework direc-
                                tory.

              Default:

              OFF               The compiler does not add  a  framework
                                directory  to  the  head  of an include
                                file search path.

              Description:

              This option adds a framework directory to the head of  an
              include file search path.

              Alternate Options:

              None

       -fabi-version=n

              Instructs the compiler to select a specific ABI implemen-
              tation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  the  ABI  implementation.  Possible
                                values are:

                                0              Requests the latest  ABI
                                               implementation.

                                1              Requests  the ABI imple-
                                               mentation  used  in  gcc
                                               3.2 and gcc 3.3.

                                2              Requests  the ABI imple-
                                               mentation  used  in  gcc
                                               3.4 and higher.

              Default:

              Varies            The  compiler  uses the ABI implementa-
                                tion that corresponds to the  installed
                                version of gcc.

              Description:

              None

       -falias

       -fno-alias

              Determines whether aliasing should be assumed in the pro-
              gram.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -falias           Aliasing is assumed in the program.

              Description:

              This option determines whether aliasing should be assumed
              in the program.

              If you do not want aliasing to be assumed in the program,
              specify -fno-alias.

              Alternate Options:

              Linux and Mac OS X: None

       -falign-functions[=n]

       -fno-align-functions

              Tells  the compiler to align functions on an optimal byte
              boundary.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is   the  byte  boundary  for  function
                                alignment. Possible values are 2 or 16.

              Default:

              -fno-align-functions
                                The compiler aligns functions on 2-byte
                                boundaries. This is the same as  speci-
                                fying  -falign-functions=2  (Linux  and
                                Mac OS X).

              Tells the compiler the stack alignment to use on entry to
              routines.

              Architectures: IA-32 architecture

              Arguments:

              mode              Is  the  method to use for stack align-
                                ment.  Possible values are:

                                assume-4-byte  Tells  the  compiler  to
                                               assume   the   stack  is
                                               aligned on 4-byte bound-
                                               aries.  The compiler can
                                               dynamically  adjust  the
                                               stack  to 16-byte align-
                                               ment if needed.

                                maintain-16-byte
                                               Tells  the  compiler  to
                                               not  assume any specific
                                               stack   alignment,   but
                                               attempt    to   maintain
                                               alignment  in  case  the
                                               stack     is     already
                                               aligned.  The   compiler
                                               can   dynamically  align
                                               the  stack  if   needed.
                                               This setting is compati-
                                               ble with gcc.

                                assume-16-byte Tells  the  compiler  to
                                               assume   the   stack  is
                                               aligned    on    16-byte
                                               boundaries  and  to con-
                                               tinue    to     maintain
                                               16-byte  alignment. This
                                               setting  is   compatible
                                               with gcc.

              Default:

              -falign-stack=assume-16-byte
                                The   compiler  assumes  the  stack  is
                                aligned on 16-byte boundaries and  con-
                                tinues to maintain 16-byte alignment.

              Description:

              This option tells the compiler the stack alignment to use
              on entry to routines.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fargument-alias  Function arguments can alias each other
                                and can alias global storage.

              Description:

              This option determines  whether  function  arguments  can
              alias  each  other. If you specify –fargument-noalias or
              /Qalias-args-,  function  arguments  cannot  alias   each
              other, but they can alias global storage.

              On  Linux  and  Mac  OS  X  systems, you can also disable
              aliasing for global storage, by specifying option -fargu-
              ment-noalias-global.

       -fargument-noalias-global

              Tells  the  compiler that function arguments cannot alias
              each other and cannot alias global storage.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Function arguments can alias each other
                                and can alias global storage.

              Description:

              This option tells the compiler  that  function  arguments
              cannot  alias  each  other  and  they cannot alias global
              storage.

              If you only want to prevent function arguments from being
              able   to   alias  each  other,  specify  option  -fargu-
              ment-noalias.

              Alternate Options:

              None

                                assembly format.

              Description:

              This   option  enables  the  use  of  blocks  and  entire
              functions of assembly code within a C or C++ file.

              It allows a Microsoft* MASM-style inline  assembly  block
              not a GNU*-style inline assembly block.

              On Mac OS* X systems, this option is provided for compat-
              ibility with the Apple* GNU compiler.

              Alternate Options:

              -use-msasm

       -fast

              Maximizes speed across the entire program.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The optimizations that  maximize  speed
                                are not enabled.

              Description:

              This option maximizes speed across the entire program.

              It sets the following options:

              · On  Mac  OS*  X  systems:  -ipo, -mdynamic-no-pic, -O3,
                -no-prec-div, and  -xHost  On  Windows*  systems:  /O3,
                /Qipo,  /Qprec-div-,  and  /QxHost  On  Linux* systems:
                -ipo, -O3, -no-prec-div, -static, and -xHost

              When option fast  is  specified,  you  can  override  the
              -xHost  or /QxHost setting by specifying a different pro-
              cessor-specific -x or /Qx option  on  the  command  line.
              However,  the  last  option specified on the command line
              takes precedence.

              For example, if you specify -fast -xSSE3 (Linux) or /fast
              /QxSSE3 (Windows), option -xSSE3 or /QxSSE3 takes effect.
              However, if you specify -xSSE3 -fast (Linux)  or  /QxSSE3
              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              Intel and non-Intel  microprocessors  (for  example  SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options  for Intel compilers, including some that are not
              specific to Intel micro-architecture,  are  reserved  for
              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  or  may not optimize to the same
              degree for non-Intel  microprocessors  for  optimizations
              that  are  not  unique  to  Intel microprocessors.  These
              optimizations include Intel® Streaming SIMD Extensions  2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3)  instruction sets and other optimizations.  Intel
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured by  Intel.   Microprocessor-dependent  opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              formance of any compiler or library; please let  us  know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

                                If    you   do   not   specify   option
                                -[no-]fast-transcendentals:

                                · The default is ON if option -fp-model
                                  fast is specified or is in effect.

                                · The  default  is  OFF if a value-safe
                                  setting is  specified  for  -fp-model
                                  (such  as "precise", "source", etc.).

              Description:

              This option enables the  compiler  to  replace  calls  to
              transcendental functions with implementations that may be
              faster but less precise.

              It allows the compiler to perform  certain  optimizations
              on transcendental functions, such as replacing individual
              calls to sine in a loop with a single call to a less pre-
              cise vectorized sine library routine.

              This  option  does  not affect explicit Short Vector Math
              Library (SVML) intrinsics.  It only affects scalar  calls
              to the standard math library routines.

              You  cannot use option –fast-transcendentals with option
              –fp-model strict.

              This option determines the setting for the maximum allow-
              able  relative  error  for  math library function results
              (max-error) if none of the following options  are  speci-
              fied:

              · -fimf-accuracy-bits  (Linux*  OS  and  Mac  OS*  X)  or
                /Qimf-accuracy-bits (Windows* OS)

              · -fimf-max-error  (Linux   OS   and   Mac   OS   X)   or
                /Qimf-max-error (Windows OS)

              · -fimf-precision (Linux OS and Mac OS X) or /Qimf-preci-
                sion (Windows OS)

              This option enables extra optimization that only  applies
              to Intel® processors.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  or  may not optimize to the same
              degree for non-Intel  microprocessors  for  optimizations
              that  are  not  unique  to  Intel microprocessors.  These
              optimizations include Intel® Streaming SIMD Extensions  2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3)  instruction sets and other optimizations.  Intel
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured by  Intel.   Microprocessor-dependent  opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              formance of any compiler or library; please let  us  know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -fasynchronous-unwind-tables

       -fno-asynchronous-unwind-tables

              Determines  whether  unwind  information is precise at an
              instruction boundary or at a call boundary.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              Intel® 64 architecture: -fasynchronous-unwind-tables
                                The  unwind  table generated is precise

              If   -fno-asynchronous-unwind-tables  is  specified,  the
              unwind table is precise at call boundaries only. In  this
              case,  the compiler will avoid creating unwind tables for
              routines such as the following:

              · A C++  routine  that  does  not  declare  objects  with
                destructors and does not contain calls to routines that
                might throw an exception.

              · A C/C++ or Fortran routine  compiled  without  -fexcep-
                tions,  and  on Intel® 64 architecture, without -trace-
                back.

              · A C/C++ or Fortran routine compiled  with  -fexceptions
                that  does  not  contain  calls  to routines that might
                throw an exception.

              Alternate Options:

              None

       -fblocks (M*X only)

       -fno-blocks (M*X only)

              Determines whether Apple* blocks are enabled or disabled.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fblocks          Apple* blocks are enabled.

              Description:

              This option determines whether Apple* blocks (block vari-
              able declarations) are enabled or disabled.

              If   you   want   to   disable   Apple*  blocks,  specify
              -fno-blocks.

              To use this  feature,  Mac  OS*  X  10.6  or  greater  is
              required.

              Alternate Options:

              None

              Default:

              OFF               Inline expansion of intrinsic functions
                                disabled.

              Description:

              This  option  enables or disables inline expansion of one
              or more intrinsic functions.  If -func is not  specified,
              -fno-builtin  disables inline expansion for all intrinsic
              functions.

              For a list of built-in functions affected  by  -fbuiltin,
              search  for  "built-in functions" in the appropriate gcc*
              documentation.

              For a list of built-in functions affected by /Oi,  search
              for  "/Oi"  in  the  appropriate Microsoft* Visual C/C++*
              documentation.

              Alternate Options:

              None

       -fcode-asm

              Produces an assembly listing with  machine  code  annota-
              tions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No machine code annotations  appear  in
                                the  assembly  listing  file, if one is
                                produced.

              Description:

              This  option  produces  an  assembly  listing  file  with
              machine code annotations.

              The  assembly listing file shows the hex machine instruc-
              tions at the beginning of each line of assembly code. The
              file  cannot  be  assembled; the file name is the name of
              the source file with an extension of .cod.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fcommon          The compiler does not treat common sym-
                                bols as global definitions.

              Description:

              This option determines whether the compiler treats common
              symbols  as global definitions and to allocate memory for
              each symbol at compile time.

              Option -fno-common tells the  compiler  to  treat  common
              symbols  as  global  definitions. When using this option,
              you can only have a common variable declared in one  mod-
              ule; otherwise, a link time error will occur for multiple
              defined symbols.

              Normally, a file-scope declaration  with  no  initializer
              and without the extern or static keyword "int i;" is rep-
              resented as a common symbol. Such a symbol is treated  as
              an  external  reference. However, if no other compilation
              unit has a global definition for  the  name,  the  linker
              allocates memory for it.

              Alternate Options:

              None

       -fexceptions

       -fno-exceptions

              Enables exception handling table generation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fexceptions      Exception  handling table generation is
                                enabled. Default for C++.

              -fno-exceptions   Exception handling table generation  is
              None

       -ffnalias

       -fno-fnalias

              Specifies  that  aliasing  should be assumed within func-
              tions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -ffnalias         Aliasing is assumed within functions.

              Description:

              This  option  specifies  that  aliasing should be assumed
              within functions.

              The -fno-fnalias option specifies  that  aliasing  should
              not  be  assumed  within functions, but should be assumed
              across calls.

              Alternate Options:

              Linux and Mac OS X: None

       -ffreestanding

              Ensures that compilation takes place  in  a  freestanding
              environment.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Standard libraries are used during com-
                                pilation.

              Description:

              This  option  ensures  that  compilation takes place in a
              freestanding environment. The compiler assumes  that  the
              None

       -ffriend-injection

       -fno-friend-injection

              Causes the compiler to inject friend functions  into  the
              enclosing namespace.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-friend-injection
                                The compiler  does  not  inject  friend
                                functions into the enclosing namespace.
                                A friend function that is not  declared
                                in an enclosing scope can only be found
                                using argument-dependent lookup.

              Description:

              This option causes the compiler to  inject  friend  func-
              tions  into  the enclosing namespace, so they are visible
              outside  the  scope  of  the  class  in  which  they  are
              declared.

              In  gcc  versions  4.1  or later, this is not the default
              behavior. This option allows compatibility with  gcc  4.0
              or earlier.

              Alternate Options:

              None

       -ffunction-sections

              Places each function in its own COMDAT section.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF
              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              value             Is  a  positive,  floating-point number
                                indicating the maximum allowable  abso-
                                lute error the compiler should use.

                                The  format  for the number is [digits]
                                [.digits] [ { e | E }[sign]digits]

              funclist          Is an optional list of one or more math
                                library    functions   to   which   the
                                attribute should  be  applied.  If  you
                                specify  more  than  one function, they
                                must be separated with commas.

              Default:

              0 (zero)          The compiler  uses  default  heuristics
                                when calling math library functions.

                                An  absolute-error  setting  of 0 means
                                that the function is bound by the rela-
                                tive   error   setting.   This  is  the
                                default behavior.

              Description:

              This option defines the maximum allowable absolute  error
              for math library function results.

              This  option can improve run-time performance, but it may
              decrease the accuracy of results.

              This option only affects functions that have  zero  as  a
              possible return value, such as log, sin, asin, etc.

              The relative error requirements for a particular function
              are determined by options that set max-error  and  preci-
              sion.  The return value from a function must have a rela-
              tive error less than the max-error value, or an  absolute
              error less than the absolute-error value.

              NOTE:  Many routines in libraries LIBM (Math Library) and
              SVML (Short Vector Math Library) are  more  highly  opti-
              mized  for  Intel®  microprocessors  than  for  non-Intel
              microprocessors.

              Alternate Options:

              None
              funclist          Is an optional list of one or more math
                                library    functions   to   which   the
                                attribute should  be  applied.  If  you
                                specify  more  than  one function, they
                                must be separated with commas.

              Default:

              OFF               The compiler  uses  default  heuristics
                                when calling math library functions.

              Description:

              This  option  defines the relative error, measured by the
              number  of  correct  bits,  for  math  library   function
              results.

              The  following formula is used to convert bits into ulps:
              ulps = 2p-1-bits, where p is the  number  of  the  target
              format  mantissa bits (24, 53, and 64 for single, double,
              and long double, respectively).

              This option can improve run-time performance, but it  may
              decrease the accuracy of results.

              If  option  -fimf-precision  (Linux* OS and Mac OS* X) or
              /Qimf-precision (Windows* OS), or option  -fimf-max-error
              (Linux*  OS  and  Mac OS* X) or /Qimf-max-error (Windows*
              OS), or option -fimf-accuracy-bits (Linux OS and Mac  OS*
              X)  or /Qimf-accuracy-bits (Windows OS) is specified, the
              default value for max-error is determined by that option.
              If  one  or  more  of  these  options  are specified, the
              default value for max-error is determined by the last one
              specified on the command line.

              If none of these options are specified, the default value
              for max-error is determined by the setting specified  for
              option-[no-]fast-transcendentals  (Linux OS and Mac OS X)
              or /Qfast-transcendentals[-] (Windows OS). If that option
              also  has not been specified, the default value is deter-
              mined by the setting of option -fp-model  (Linux  OS  and
              Mac OS X) or /fp (Windows OS).

              NOTE:  Many routines in libraries LIBM (Math Library) and
              SVML (Short Vector Math Library) are  more  highly  opti-
              mized  for  Intel®  microprocessors  than  for  non-Intel
              microprocessors.

              Alternate Options:

              None

                                library   functions   to   which    the
                                attribute  should  be  applied.  If you
                                specify more than  one  function,  they
                                must be separated with commas.

              Default:

              OFF               The  compiler  uses  default heuristics
                                when calling math library functions.

              Description:

              This option ensures that the math library functions  pro-
              duce  consistent results across different implementations
              of the same architecture.

              If -fimf-arch-consistency=true (Linux and Mac  OS  X)  or
              /Qimf-arch-consistency:true   is   specified,   it  takes
              precedence  over  precision  settings  in  the  following
              options:

              · -fimf-absolute-error  (Linux*  OS  and  Mac  OS*  X) or
                /Qimf-absolute-error (Windows* OS)

              · -fimf-accuracy-bits  (Linux  OS  and  Mac  OS   X)   or
                /Qimf-accuracy-bits (Windows OS)

              · -fimf-max-error   (Linux   OS   and   Mac   OS   X)  or
                /Qimf-max-error (Windows OS)

              · -fimf-precision (Linux OS and Mac OS X) or /Qimf-preci-
                sion (Windows OS)

              The  -fimf-arch-consistency (Linux* OS and Mac OS* X) and
              /Qimf-arch-consistency (Windows* OS) option may  decrease
              run-time   performance,   but  the  option  will  provide
              bit-wise consistent results on all Intel® processors  and
              compatible,    non-Intel    processors,   regardless   of
              micro-architecture. This option may not provide  bit-wise
              consistent  results  between different architectures, for
              example, between IA-32 and Intel® 64 architectures.

              NOTE: Many routines in libraries LIBM (Math Library)  and
              SVML  (Short  Vector  Math Library) are more highly opti-
              mized  for  Intel®  microprocessors  than  for  non-Intel
              microprocessors.

              Alternate Options:

              None

       -fimf-max-error=ulps[:funclist]
              funclist          Is an optional list of one or more math
                                library   functions   to   which    the
                                attribute  should  be  applied.  If you
                                specify more than  one  function,  they
                                must be separated with commas.

              Default:

              OFF               The  compiler  uses  default heuristics
                                when calling math library functions.

              Description:

              This option defines the maximum allowable relative error,
              measured in ulps, for math library function results.

              This  option can improve run-time performance, but it may
              decrease the accuracy of results.

              If option -fimf-precision (Linux* OS and Mac  OS*  X)  or
              /Qimf-precision  (Windows* OS), or option -fimf-max-error
              (Linux* OS and Mac OS* X)  or  /Qimf-max-error  (Windows*
              OS),  or option -fimf-accuracy-bits (Linux OS and Mac OS*
              X) or /Qimf-accuracy-bits (Windows OS) is specified,  the
              default value for max-error is determined by that option.
              If one or  more  of  these  options  are  specified,  the
              default value for max-error is determined by the last one
              specified on the command line.

              If none of these options are specified, the default value
              for  max-error is determined by the setting specified for
              option-[no-]fast-transcendentals (Linux OS and Mac OS  X)
              or /Qfast-transcendentals[-] (Windows OS). If that option
              also has not been specified, the default value is  deter-
              mined  by  the  setting of option -fp-model (Linux OS and
              Mac OS X) or /fp (Windows OS).

              NOTE: Many routines in libraries LIBM (Math Library)  and
              SVML  (Short  Vector  Math Library) are more highly opti-
              mized  for  Intel®  microprocessors  than  for  non-Intel
              microprocessors.

              Alternate Options:

              None

       -fimf-precision[=value[:funclist]]

              Defines the accuracy for math library functions.

              Architectures: IA-32, Intel® 64 architectures

                                low            This  is  equivalent  to
                                               accuracy-bits  =  11  if
                                               the value is single pre-
                                               cision; accuracy-bits  =
                                               26  if the value is dou-
                                               ble precision.

                                In the  above  explanations,  max-error
                                means  option   -fimf-max-error (Linux*
                                OS and Mac OS*  X)  or  /Qimf-max-error
                                (Windows*   OS);   accuracy-bits  means
                                option -fimf-accuracy-bits  (Linux*  OS
                                and  Mac  OS* X) or /Qimf-accuracy-bits
                                (Windows* OS).

              funclist          Is an optional list of one or more math
                                library    functions   to   which   the
                                attribute should  be  applied.  If  you
                                specify  more  than  one function, they
                                must be separated with commas.

              Default:

              OFF               The compiler  uses  default  heuristics
                                when calling math library functions.

              Description:

              This  option  defines  the  accuracy (precision) for math
              library functions.

              This option can be used to improve  run-time  performance
              if reduced accuracy is sufficient for the application, or
              it can be used to increase the accuracy of  math  library
              functions.

              In  general, using a lower precision can improve run-time
              performance and  using  a  higher  precision  may  reduce
              run-time performance.

              If  option  -fimf-precision  (Linux* OS and Mac OS* X) or
              /Qimf-precision (Windows* OS), or option  -fimf-max-error
              (Linux*  OS  and  Mac OS* X) or /Qimf-max-error (Windows*
              OS), or option -fimf-accuracy-bits (Linux OS and Mac  OS*
              X)  or /Qimf-accuracy-bits (Windows OS) is specified, the
              default value for max-error is determined by that option.
              If  one  or  more  of  these  options  are specified, the
              default value for max-error is determined by the last one
              specified on the command line.

              If none of these options are specified, the default value
              for max-error is determined by the setting specified  for

       -finline

       -fno-inline

              Tells the compiler  to  inline  functions  declared  with
              __inline and perform C++ inlining.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-inline       The compiler does not inline  functions
                                declared with __inline.

              Description:

              This  option  tells  the  compiler  to  inline  functions
              declared with __inline and perform C++ inlining.

              Alternate Options:

              None

       -finline-functions

       -fno-inline-functions

              Enables function inlining for single file compilation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -finline-functions
                                Interprocedural  optimizations   occur.
                                However,   if   you  specify  -O0,  the
                                default is OFF.

              Description:

              This option enables function  inlining  for  single  file
              compilation.

              Lets  you  specify  the  maximum size of a function to be
              inlined.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Must  be  an  integer  greater  than or
                                equal to zero. It is the maximum number
                                of  lines  the  function can have to be
                                considered for inlining.

              Default:

              OFF               The compiler  uses  default  heuristics
                                when inlining functions.

              Description:

              This  option lets you specify the maximum size of a func-
              tion to be inlined. The compiler  inlines  smaller  func-
              tions,  but  this option lets you inline large functions.
              For example, to indicate  a  large  function,  you  could
              specify 100 or 1000 for n.

              Note  that  parts  of  functions  cannot be inlined, only
              whole functions.

              This option is a modification of  the  -finline-functions
              option, whose behavior occurs by default.

              Alternate Options:

              None

       -finstrument-functions

       -fno-instrument-functions

              Determines  whether  function  entry  and exit points are
              instrumented.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-instrument-functions
                                Function  entry and exit points are not

                  void __cyg_profile_func_enter (void *this_fn,

                  void *call_site);

              · This function is called upon function exit:

                ·

                  void __cyg_profile_func_exit (void *this_fn,

                  void *call_site);

              These functions can be used to gather  more  information,
              such as profiling information or timing information. Note
              that it is the user's  responsibility  to  provide  these
              profiling functions.

              If  you  specify -finstrument-functions (Linux and Mac OS
              X) or /Qinstrument-functions (Windows), function inlining
              is  disabled. If you specify -fno-instrument-functions or
              /Qinstrument-functions-, inlining is not disabled.

              On Linux and Mac OS X systems, you can use the  following
              attribute  to  stop  an  individual  function  from being
              instrumented:

              __attribute__((__no_instrument_function__))


              It also stops inlining from being disabled for that indi-
              vidual function.

              This option is provided for compatibility with gcc.

              Alternate Options:

              None

       -fjump-tables

       -fno-jump-tables

              Determines  whether  jump tables are generated for switch
              statements.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None


              Option -fno-jump-tables also prevents the  compiler  from
              creating  switch  statements  internally  as  a result of
              optimizations.

              Use -fno-jump-tables with -fpic  when  compiling  objects
              that will be loaded in a way where the jump table reloca-
              tion cannot be resolved.

              Alternate Options:

              None

       -fkeep-static-consts

       -fno-keep-static-consts

              Tells the compiler to preserve  allocation  of  variables
              that are not referenced in the source.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-keep-static-consts
                                If a variable is never referenced in  a
                                routine,   the  variable  is  discarded
                                unless optimizations  are  disabled  by
                                option -O0 (Linux* OS and Mac OS* X).

              Description:

              This  option tells the compiler to preserve allocation of
              variables that are not referenced in the source.

              The negated form can be  useful  when  optimizations  are
              enabled to reduce the memory usage of static data.

              Alternate Options:

              None

       -fma

       -no-fma

              Determines  whether  the  compiler generates fused multi-
              ply-add (FMA) instructions if such instructions exist  on
                                However,   if   you  specify  -fp-model
                                strict (Linux* OS and Mac OS*  X),  but
                                do  not  explicitly  specify  -fma, the
                                default is -no-fma.

              Description:

              This option determines  whether  the  compiler  generates
              fused  multiply-add  (FMA)  instructions if such instruc-
              tions exist on the target processor. When -fma (Linux  OS
              and  Mac  OS  X) or /Qfma (Windows* OS) is specified, the
              compiler may generate FMA instructions for combining mul-
              tiply and add operations. When -no-fma (Linux  OS and Mac
              OS X) or /Qfma- (Windows* OS) is specified, the  compiler
              must generate separate multiply and add instructions with
              intermediate rounding.

              This option has no effect  unless  setting  CORE-AVX2  or
              higher  is  specified for option -x (Linux  OS and Mac OS
              X) or /Qx (Windows OS),  or options -march (Linux OS  and
              Mac OS X) or /arch (Windows OS).

       -fmath-errno

       -fno-math-errno

              Tells  the  compiler  that  errno  can be reliably tested
              after calls to standard math library functions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-math-errno   The  compiler  assumes that the program
                                does not  test  errno  after  calls  to
                                standard math library functions.

              Description:

              This option tells the compiler to assume that the program
              tests errno after calls to math library  functions.  This
              restricts  optimization because it causes the compiler to
              treat most math functions as having side effects.

              Option -fno-math-errno tells the compiler to assume  that
              the  program  does  not  test  errno  after calls to math
              library functions. This frequently allows the compiler to
              generate  faster code. Floating-point code that relies on
              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-merge-debug-strings
                                The compiler does not pool strings used
                                in debugging information.

              Description:

              This option causes the compiler to pool strings  used  in
              debugging  information.  The  linker  will  automatically
              retain this pooling.

              This option can reduce the size of debug information, but
              it may produce slightly slower compile and link times.

              When  using  this  option,  we recommend you use binutils
              version 2.17 or later.

              Alternate Options:

              None

       -fminshared

              Specifies that a compilation unit is  a  component  of  a
              main program and should not be linked as part of a share-
              able object.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Source files are compiled  together  to
                                form a single object file.

              Description:

              This option specifies that a compilation unit is a compo-
              nent of a main program and should not be linked  as  part
              of a shareable object.

              This option allows the compiler to optimize references to

       -fms-dialect[=ver]

       -fno-ms-dialect

              Enables support for a language dialect that is compatible
              with  Microsoft* Windows, while maintaining link compati-
              bility with gcc.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              ver               Indicates  that  the  language  dialect
                                should  be  compatible  with  a certain
                                version of  Microsoft*  Visual  Studio.
                                Possible values are:

                                8              Specifies   the  dialect
                                               should   be   compatible
                                               with  Microsoft*  Visual
                                               Studio 2005. This is the
                                               default  if  you  do not
                                               specifyver.

                                9              Specifies  the   dialect
                                               should   be   compatible
                                               with  Microsoft*  Visual
                                               Studio 2008.

                                10             Specifies   the  dialect
                                               should   be   compatible
                                               with  Microsoft*  Visual
                                               Studio 2010.

              Default:

              -fno-ms-dialect   The compiler does not  support  a  lan-
                                guage  dialect  that is compatible with
                                Microsoft* Windows.

              Description:

              This option enables support for a language  dialect  that
              is  compatible with Microsoft* Windows, while maintaining
              link compatibility with gcc.  It  allows  portability  of
              code  written  on Windows* that uses Microsoft extensions
              or language features.

              Alternate Options:

              None
              OFF               The compiler does not instrument  risky
                                pointer operations.

              Description:

              The compiler instruments risky pointer operations to pre-
              vent buffer overflows and invalid heap use. Requires  gcc
              4.0 or newer.

              When  using this compiler option, you must specify linker
              option -lmudflap in the link command line to resolve ref-
              erences to the libmudflap library.

              Alternate Options:

              None

       -fno-gnu-keywords

              Do not recognize typeof as keyword.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Keyword typeof is recognized.

              Description:

              Do not recognize typeof as keyword.

              Alternate Options:

              None

       -fno-implicit-inline-templates

              Tells  the compiler to not emit code for implicit instan-
              tiations of inline templates.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

       -fno-implicit-templates

              Tells  the  compiler to not emit code for non-inline tem-
              plates that are instantiated implicitly.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler  handles  inlines so that
                                compilations, with  and  without  opti-
                                mization,  will  need  the  same set of
                                explicit instantiations.

              Description:

              This option tells the  compiler  to  not  emit  code  for
              non-inline  templates  that  are instantiated implicitly,
              but to only emit code for explicit instantiations.

              Alternate Options:

              None

       -fnon-call-exceptions

       -fno-non-call-exceptions

              Allows trapping instructions to throw C++ exceptions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-non-call-exceptions
                                C++  exceptions  are  not  thrown  from
                                trapping instructions.

              Description:

              This  option  allows  trapping  instructions to throw C++
              exceptions. It allows hardware signals generated by trap-
              ping instructions to be converted into C++ exceptions and
              caught using the standard C++ exception  handling  mecha-
              Alternate Options:

              None

       -fnon-lvalue-assign

       -fno-non-lvalue-assign

              Determines  whether casts and conditional expressions can
              be used as lvalues.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fnon-lvalue-assign
                                The  compiler  allows  casts and condi-
                                tional expressions to be used as  lval-
                                ues.

              Description:

              This  option  determines  whether  casts  and conditional
              expressions can be used as lvalues.

              Alternate Options:

              None

       -fno-operator-names

              Disables support for the operator names specified in  the
              standard.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF

              Description:

              Disables support for the operator names specified in  the
              standard.

              Default:

              OFF

              Description:

              This  option  disables support for run-time type informa-
              tion (RTTI).

              Alternate Options:

              None

       -fomit-frame-pointer

       -fno-omit-frame-pointer

              Determines whether EBP is used as a general-purpose  reg-
              ister in optimizations.

              Architectures: -f[no-]omit-frame-pointer:  IA-32,  Intel®
              64 architectures/Oy[-]: IA-32 architecture

              Arguments:

              None

              Default:

              -fomit-frame-pointer
                                EBP is used as a general-purpose regis-
                                ter   in   optimizations.  However,  on
                                Linux*  and  Mac  OS*  X  systems,  the
                                default  is  -fno-omit-frame-pointer if
                                option -O0 or -g is specified.

              Description:

              These options determine whether EBP is  used  as  a  gen-
              eral-purpose    register    in   optimizations.   Options
              -fomit-frame-pointer and  /Oy  allow  this  use.  Options
              -fno-omit-frame-pointer and /Oy- disallow it.

              Some  debuggers  expect  EBP  to be used as a stack frame
              pointer, and cannot produce a stack backtrace unless this
              is  so.  The  -fno-omit-frame-pointer  and  /Oy-  options
              direct the compiler to generate code that  maintains  and
              uses  EBP  as  a stack frame pointer for all functions so
              that a debugger can still produce a stack backtrace with-
              out doing the following:

              the  number  of available general-purpose registers by 1,
              and can result in slightly less efficient code.

              NOTE: There is currently an issue with GCC 3.2  exception
              handling.  Therefore,  the  Intel  compiler  ignores this
              option when GCC 3.2 is installed for  C++  and  exception
              handling is turned on (the default).

              Alternate Options:

              Linux and Mac OS X: -fp (this is a deprecated option)

       -fp-model keyword

              Controls the semantics of floating-point calculations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Specifies  the  semantics  to  be used.
                                Possible values are:

                                precise        Enables value-safe opti-
                                               mizations    on   float-
                                               ing-point data.

                                fast[=1|2]     Enables more  aggressive
                                               optimizations  on float-
                                               ing-point data.

                                strict         Enables   precise    and
                                               except,   disables  con-
                                               tractions,  and  enables
                                               pragma stdc fenv_access.

                                source         Rounds      intermediate
                                               results               to
                                               source-defined precision
                                               and  enables  value-safe
                                               optimizations.

                                double         Rounds      intermediate
                                               results  to 53-bit (dou-
                                               ble) precision.

                                extended       Rounds      intermediate
                                               results     to    64-bit
                                               (extended) precision.

                                [no-]except (Linux and  Mac  OS  X)  or
                                except[-] (Windows)

              The keywords can be considered in groups:

              · Group A: precise, fast, strict

              · Group B: source, double, extended

              · Group C: except (or the negative form)

              You can use more than one keyword. However, the following
              rules apply:

              · You cannot specify fast and except together in the same
                compilation.  You  can specify any other combination of
                group A, group B,  and  group  C.  Since  fast  is  the
                default,  you must not specify except without a group A
                or group B keyword.

              · You should specify only one keyword from  group  A  and
                only  one  keyword from  group B. If you try to specify
                more than one keyword from either group A or  group  B,
                the last (rightmost) one takes effect.

              · If  you specify except more than once, the last (right-
                most) one takes effect.

              The floating-point (FP) environment is  a  collection  of
              registers   that  control  the  behavior  of  FP  machine
              instructions and indicate  the  current  FP  status.  The
              floating-point environment may include rounding-mode con-
              trols, exception masks, flush-to-zero controls, exception
              status  flags, and other floating-point related features.

              Option            Description

              -fp-model precise or /fp:precise
                                Tells the compiler to  strictly  adhere
                                to value-safe optimizations when imple-
                                menting floating-point calculations. It
                                disables  optimizations that can change
                                the result of  floating-point  calcula-
                                tions,  which  is  required  for strict
                                ANSI   conformance.   These   semantics
                                ensure  the  accuracy of floating-point
                                computations, but they may slow perfor-
                                mance.

              The  compiler assumes the default floating-point environ-
              ment; you are not allowed to modify it.

              Intermediate  results  are  computed  with  the precision
              shown in the following table, unless it is overridden  by
                                floating-point    calculations.   These
                                optimizations increase speed,  but  may
                                alter  the  accuracy  of floating-point
                                computations.

              Specifying fast is the same as specifying fast=1.  fast=2
              may produce faster and less accurate results.

              Floating-point  exception  semantics  are   disabled   by
              default  and  they  cannot  be enabled because you cannot
              specify fast and except together in the same compilation.
              To  enable exception semantics, you must explicitly spec-
              ify another keyword (see other keyword  descriptions  for
              details).

              -fp-model strict or /fp:strict
                                Tells the compiler to  strictly  adhere
                                to value-safe optimizations when imple-
                                menting floating-point calculations and
                                enables floating-point exception seman-
                                tics.  This  is  the  strictest  float-
                                ing-point model.

              The  compiler  does not assume the default floating-point
              environment; you are allowed to modify it.

              Floating-point  exception  semantics  can  be disabled by
              explicitly specifying -fp-model no-except or /fp:except-.

              -fp-model source or /fp:source
                                This option causes intermediate results
                                to be rounded to the precision  defined
                                in  the  source  code.  It also implies
                                keyword precise unless it is overridden
                                by a keyword from Group A.

              Intermediate expressions use the precision of the operand
              with higher precision, if any.

              long  double:  64-bit precision; 80-bit data type; 15-bit
              exponent

              double:  53-bit precision; 64-bit data type; 11-bit expo-
              nent; on Windows systems using  IA-32  architecture,  the
              exponent may be 15-bit if an x87 register is used to hold
              the value.

              float: 24-bit precision; 32-bit data type; 8-bit exponent

              The  compiler assumes the default floating-point environ-
              ment; you are not allowed to modify it.

              64-bit data type

              11-bit exponent; on Windows systems using IA-32 architec-
              ture,  the  exponent  may be 15-bit if an x87 register is
              used to hold the value.

              This option also implies keyword  precise  unless  it  is
              overridden by a keyword from Group A.

              The compiler assumes the default floating-point  environ-
              ment; you are not allowed to modify it.

              -fp-model extended or /fp:extended
                                This option causes intermediate results
                                to be rounded as follows:

              64-bit (extended) precision

              80-bit data type

              15-bit exponent

              64-bit (extended) precision

              80-bit data type

              15-bit exponent

              This  option  also  implies  keyword precise unless it is
              overridden by a keyword from Group A.

              The  compiler assumes the default floating-point environ-
              ment; you are not allowed to modify it.

              -fp-model except or /fp:except
                                Tells   the   compiler  to  use  float-
                                ing-point exception semantics.

              This option determines the setting for the maximum allow-
              able  relative  error  for  math library function results
              (max-error) if none of the following options  are  speci-
              fied:

              · -fimf-accuracy-bits  (Linux*  OS  and  Mac  OS*  X)  or
                /Qimf-accuracy-bits (Windows* OS)

              · -fimf-max-error  (Linux   OS   and   Mac   OS   X)   or
                /Qimf-max-error (Windows OS)

              · -fimf-precision (Linux OS and Mac OS X) or /Qimf-preci-
                sion (Windows OS)


              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              Intel and non-Intel  microprocessors  (for  example  SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options  for Intel compilers, including some that are not
              specific to Intel micro-architecture,  are  reserved  for
              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  or  may not optimize to the same
              degree for non-Intel  microprocessors  for  optimizations
              that  are  not  unique  to  Intel microprocessors.  These
              optimizations include Intel® Streaming SIMD Extensions  2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3)  instruction sets and other optimizations.  Intel
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured    by    Intel.     Microprocessor-dependent
              optimizations  in  this product are intended for use with
              Intel microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              formance of any compiler or library; please let  us  know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:
              None

              Default:

              -no-fp-port       The  default  rounding behavior depends
                                on the compiler's code generation deci-
                                sions  and  the precision parameters of
                                the operating system.

              Description:

              This option rounds floating-point  results  after  float-
              ing-point  operations.  Rounding to user-specified preci-
              sion occurs at assignments and type conversions. This has
              some impact on speed.

              The  default  is to keep results of floating-point opera-
              tions in higher precision. This provides  better  perfor-
              mance but less consistent floating-point results.

              Alternate Options:

              None

       -fp-speculation=mode

              Tells  the  compiler  the  mode  in which to speculate on
              floating-point operations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              mode              Is  the  mode for floating-point opera-
                                tions. Possible values are:

                                fast           Tells  the  compiler  to
                                               speculate    on   float-
                                               ing-point operations.

                                safe           Tells  the  compiler  to
                                               disable  speculation  if
                                               there is  a  possibility
                                               that the speculation may
                                               cause  a  floating-point
                                               exception.

                                strict         Tells  the  compiler  to
                                               disable  speculation  on
                                               floating-point    opera-
                                               tions.

              Description:

              This option tells the compiler the mode in which to spec-
              ulate on floating-point operations.

              Alternate Options:

              None

       -fp-stack-check

              Tells the compiler to generate  extra  code  after  every
              function  call to ensure that the floating-point stack is
              in the expected state.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               There is no checking to ensure that the
                                floating-point  (FP)  stack  is  in the
                                expected state.

              Description:

              This option tells the compiler  to  generate  extra  code
              after  every  function  call  to  ensure  that the float-
              ing-point (FP) stack is in the expected state.

              By default, there is no checking. So when  the  FP  stack
              overflows,  a  NaN  value is put into FP calculations and
              the program's results differ. Unfortunately, the overflow
              point  can  be far away from the point of the actual bug.
              This option places code that causes an  access  violation
              exception  immediately  after  an  incorrect call occurs,
              thus making it easier to locate these issues.

              Alternate Options:

              None

       -fp-trap=mode[,mode,...]

              Sets the floating-point trapping mode for the  main  rou-
              tine.

              Architectures: IA-32, Intel® 64 architectures


                                [no]invalid    Enables  or disables the
                                               IEEE  trap  for  invalid
                                               operation.

                                [no]overflow   Enables  or disables the
                                               IEEE trap for  overflow.

                                [no]underflow  Enables  or disables the
                                               IEEE trap for underflow.

                                [no]denormal   Enables  or disables the
                                               trap for denormal.

                                all            Enables all of the above
                                               traps.

                                none           Disables   all   of  the
                                               above traps.

                                common         Sets the  most  commonly
                                               used  IEEE  traps: divi-
                                               sion  by  zero,  invalid
                                               operation, and overflow.

              Default:

              -fp-trap=none     No traps are  enabled  when  a  program
                                starts.

              Description:

              This option sets the floating-point trapping mode for the
              main routine.   It does not  set  a  handler  for  float-
              ing-point exceptions.

              The  [no] form of a mode value is only used to modify the
              meaning of mode values all and common, and  can  only  be
              used  with  one  of  those  values.  The [no] form of the
              option by itself does not explicitly cause  a  particular
              trap to be disabled.

              Use  mode value inexact with caution. This results in the
              trap being enabled whenever a floating-point value cannot
              be   represented  exactly,  which  can  cause  unexpected
              results.

              If  mode  value  underflow  is  specified,  the  compiler
              ignores  the  FTZ  (flush-to-zero)  bit  state  of Intel®
              Streaming SIMD  Extensions  (Intel®  SSE)  floating-point
              units.

              None

       -fp-trap-all=mode[,mode,...]

              Sets the floating-point trapping mode for all routines.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              mode              Is the floating-point trapping mode. If
                                you specify more than one  mode  value,
                                the list is processed sequentially from
                                left to right.  Possible values are:

                                [no]divzero    Enables or disables  the
                                               IEEE  trap  for division
                                               by zero.

                                [no]inexact    Enables or disables  the
                                               IEEE  trap  for  inexact
                                               result.

                                [no]invalid    Enables or disables  the
                                               IEEE  trap  for  invalid
                                               operation.

                                [no]overflow   Enables or disables  the
                                               IEEE  trap for overflow.

                                [no]underflow  Enables or disables  the
                                               IEEE trap for underflow.

                                [no]denormal   Enables or disables  the
                                               trap for denormal.

                                all            Enables all of the above
                                               traps.

                                none           Disables  all   of   the
                                               above traps.

                                common         Sets  the  most commonly
                                               used IEEE  traps:  divi-
                                               sion  by  zero,  invalid
                                               operation, and overflow.

              Default:

              -fp-trap-all=none No  traps are enabled for all routines.

              Description:
              results.

              If  mode  value  underflow  is  specified,  the  compiler
              ignores the  FTZ  (flush-to-zero)  bit  state  of  Intel®
              Streaming  SIMD  Extensions  (Intel®  SSE) floating-point
              units.

              When a DAZ (denormals are zero) bit is set in  an  Intel®
              SSE  floating-point unit control word, a denormal operand
              exception is never generated.

              To set the floating-point trapping mode for the main rou-
              tine  only,  specify option -fp-trap (Linux and Mac OS X)
              or /Qfp-trap (Windows).

              NOTE: Option -[no-]ftz (Linux and Mac OS X) and  /Qftz[-]
              (Windows) can be used to set or reset the FTZ and the DAZ
              hardware flags.

              Alternate Options:

              None

       -fpack-struct

              Specifies  that  structure  members  should   be   packed
              together.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF

              Description:

              Specifies  that  structure  members  should   be   packed
              together. Note: Using this option may result in code that
              is not usable with standard (system) c and C++ libraries.

              Alternate Options:

              -Zp1

       -fpermissive

              Allow for non-conformant code.

              Alternate Options:

              None

       -fpic

       -fno-pic

              Determines  whether the compiler generates position-inde-
              pendent code.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-pic          The  compiler  does  not generate posi-
                                tion-independent code.

              Description:

              This option determines  whether  the  compiler  generates
              position-independent code.

              Option  -fpic  specifies  full  symbol preemption. Global
              symbol definitions as well as  global  symbol  references
              get  default  (that  is,  preemptable)  visibility unless
              explicitly specified otherwise.

              Option -fpic must be used when building shared objects.

              This option can also be specified as -fPIC.

              Alternate Options:

              None

       -fpie (L*X only)

              Tells the compiler to generate position-independent code.
              The generated code can only be linked into executables.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              To ensure that run-time libraries are set up properly for
              the  executable,  you  should also specify option -pie to
              the compiler driver on the link command line.

              Option -fpie can also be specified as -fPIE.

              Alternate Options:

              None

       -freg-struct-return

              Tells the compiler to return struct and union  values  in
              registers when possible.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF

              Description:

              This option tells the compiler to return struct and union
              values in registers when possible.

              Alternate Options:

              None

       -fshort-enums

              Tells  the  compiler  to allocate as many bytes as needed
              for enumerated types.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler allocates a default number
                                of bytes for enumerated types.

              Description:

              Arguments:

              None

              Default:

              OFF               No  source  code  annotations appear in
                                the assembly listing file,  if  one  is
                                produced.

              Description:

              This option produces an assembly listing file with source
              code annotations. The assembly  listing  file  shows  the
              source code as interspersed comments.

              To  use  this  option,  you  must also specify option -S,
              which causes an assembly listing to be generated.

              Alternate Options:

              None

       -fstack-security-check

       -fno-stack-security-check

              Determines  whether  the  compiler  generates  code  that
              detects some buffer overruns.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-stack-security-check
                                The compiler  does  not  detect  buffer
                                overruns.

              Description:

              This  option  determines  whether  the compiler generates
              code that detects some buffer overruns that overwrite the
              return address. This is a common technique for exploiting
              code that does not enforce buffer size restrictions.

              The /GS option is supported with Microsoft Visual  Studio
              .NET 2003* and Microsoft Visual Studio 2005*.

              Default:

              OFF               Normal compilation is performed.

              Description:

              This  option tells the compiler to check only for correct
              syntax. No object file is produced.

              Alternate Options:

              /Zs

       -ftemplate-depth-n

              Control  the  depth  in  which  recursive  templates  are
              expanded.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 The number of recursive templates  that
                                are expanded.

              Default:

              OFF

              Description:

              Control  the  depth  in  which  recursive  templates  are
              expanded. On Linux*, this option  is  supported  only  by
              invoking the compiler with icpc.

              Alternate Options:

              None

       -ftls-model=model

              Changes the thread local storage (TLS) model.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              model             Determines  the  TLS  model used by the
                                compiler. Possible values are:

                                global-dynamic Generates a generic  TLS
                                               must  be  defined in the
                                               same  object  in   which
                                               they are referenced.

                                initial-exec   Generates a restrictive,
                                               optimized TLS  code.  To
                                               use  this  setting,  the
                                               thread-local   variables
                                               accessed must be defined
                                               in one  of  the  modules
                                               available  to  the  pro-
                                               gram.

                                local-exec     Generates    the    most
                                               restrictive TLS code. To
                                               use  this  setting,  the
                                               thread-local   variables
                                               must be defined  in  the
                                               executable.

              Default:

              OFF               The  compiler  uses  default heuristics
                                when determining the thread-local stor-
                                age model.

              Description:

              This option changes the thread local storage (TLS) model.
              Thread-local storage is a mechanism  by  which  variables
              are  allocated  in  a way that causes one instance of the
              variable per extant thread.

              For more information on the  thread-storage  localization
              models, see the appropriate gcc* documentation.

              Alternate Options:

              None

       -ftrapuv

              Initializes  stack local variables to an unusual value to
              aid error detection.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:
              cause  run-time  errors  that  can help you detect coding
              errors.

              This option sets option -g (Linux and Mac OS X)  and  /Zi
              or /Z7 (Windows).

              Alternate Options:

              None

       -ftz

       -no-ftz

              Flushes denormal results to zero.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -ftz or /Qftz     Denormal results are flushed to zero.

                                Every   optimization  option  O  level,
                                except O0, sets -ftz and /Qftz.

              Description:

              This option flushes denormal results  to  zero  when  the
              application  is  in  the  gradual  underflow mode. It may
              improve performance if the denormal values are not criti-
              cal to your application's behavior.

              This  option  sets or resets the FTZ and the DAZ hardware
              flags. If FTZ is ON, denormal results from floating-point
              calculations  will  be  set  to the value zero. If FTZ is
              OFF, denormal results remain as is. If DAZ is ON,  denor-
              mal  values  used as input to floating-point instructions
              will be treated as zero. If DAZ is OFF, denormal instruc-
              tion inputs remain as is.  Systems using Intel® 64 archi-
              tecture have both FTZ and DAZ. FTZ and DAZ are  not  sup-
              ported on all IA-32 architectures.

              When -ftz (Linux and Mac OS X) or /Qftz (Windows) is used
              in combination with an  SSE-enabling  option  on  systems
              using  IA-32  architecture  (for example, xN or QxN), the
              compiler will insert code in the main routine to set  FTZ
              and  DAZ.  When  -ftz  or  /Qftz  is used without such an
              option, the compiler will insert  code  to  conditionally

              NOTE: Options -ftz and  /Qftz  are  performance  options.
              Setting  these options does not guarantee that all denor-
              mals in a program are flushed to zero.  They  only  cause
              denormals generated at run time to be flushed to zero.

              Alternate Options:

              None

       -funroll-all-loops

              Unroll  all  loops  even  if  the number of iterations is
              uncertain when the loop is entered.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Do not unroll all loops.

              Description:

              Unroll  all  loops,  even  if the number of iterations is
              uncertain when the loop is entered. There may  a  perfor-
              mance impact with this option.

              Alternate Options:

              None

       -funsigned-bitfields

       -fno-unsigned-bitfields

              Determines  whether  the default bitfield type is changed
              to unsigned.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-unsigned-bitfields
                                The default bitfield type is signed.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Do not  change  default  char  type  to
                                unsigned.

              Description:

              Change default char type to unsigned.

              Alternate Options:

              None

       -fverbose-asm

       -fno-verbose-asm

              Produces  an  assembly  listing  with  compiler comments,
              including options and version information.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -fno-verbose-asm  No  source  code  annotations appear in
                                the assembly listing file,  if  one  is
                                produced.

              Description:

              This  option  produces an assembly listing file with com-
              piler comments, including options  and  version  informa-
              tion.

              To  use this option, you must also specify -S, which sets
              -fverbose-asm.

              If you do not want this  default  when  you  specify  -S,
              specify -fno-verbose-asm.

              Alternate Options:

                                sible values are:

                                default        Sets    visibility    to
                                               default.

                                extern         Sets    visibility    to
                                               extern.

                                hidden         Sets visibility to  hid-
                                               den.

                                protected      Sets  visibility to pro-
                                               tected.  This  value  is
                                               not available on Mac OS*
                                               X systems.

              filename          Is the pathname of  a  file  containing
                                the  list  of  symbols whose visibility
                                you want to set. The  symbols  must  be
                                separated  by whitespace (spaces, tabs,
                                or newlines).

              Default:

              -fvisibility=default
                                The compiler sets visibility of symbols
                                to default.

              Description:

              This  option  specifies the default visibility for global
              symbols (syntax -fvisibility=keyword) or  the  visibility
              for  symbols in a file (syntax -fvisibility-keyword=file-
              name).

              Visibility  specified  by   -fvisibility-keyword=filename
              overrides  visibility  specified  by -fvisibility=keyword
              for symbols specified in a file.

              Option            Description

              -fvisibility=default -fvisibility-default=filename
                                Sets visibility of symbols to  default.
                                This  means other components can refer-
                                ence the symbol, and the symbol defini-
                                tion can be overridden (preempted) by a
                                definition of the same name in  another
                                component.

              -fvisibility=extern -fvisibility-extern=filename
                                Sets  visibility  of symbols to extern.
                                This means the  symbol  is  treated  as
                                tected. This means other components can
                                reference the symbol, but it cannot  be
                                overridden  by a definition of the same
                                name in another component.  This  value
                                is  not available on Mac OS* X systems.

              If an -fvisibility option is specified more than once  on
              the command line, the last specification takes precedence
              over any others.

              If a symbol appears in more than one visibility filename,
              the setting with the least visibility takes precedence.

              The following shows the precedence of the visibility set-
              tings (from greatest to least visibility):

              · extern

              · default

              · protected

              · hidden

              Note that extern visibility only applies to functions. If
              a  variable  symbol is specified as extern, it is assumed
              to be default.

              Alternate Options:

              None

       -fvisibility-inlines-hidden

              Causes inline member  functions  (those  defined  in  the
              class declaration) to be marked hidden.

              Architectures: IA-32 architecture

              Arguments:

              None

              Default:

              OFF               The compiler does not cause inline mem-
                                ber functions to be marked hidden.

              Description:

              Causes  inline  member  functions  (those  defined in the
              class declaration) to be marked hidden.  This  option  is

              Arguments:

              None

              Default:

              -fno-zero-initialized-in-bss
                                Variables  explicitly  initialized with
                                zeros are placed in  the  BSS  section.
                                This  can  save  space in the resulting
                                code.

              Description:

              This option determines whether the compiler places in the
              DATA  section  any  variables explicitly initialized with
              zeros.

              If option -fno-zero-initialized-in-bss (Linux and Mac  OS
              X)  or /Qzero-initialized-in-bss- (Windows) is specified,
              the compiler places in the  DATA  section  any  variables
              that are initialized to zero.

              Alternate Options:

              None

       -g

              Tells the compiler to generate full debugging information
              in the object file or a project database (PDB) file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No debugging information is produced in
                                the object file or in a PDB file.

              Description:

              Options -g (Linux* OS and Mac OS* X) and  /Z7  (Windows*)
              tell the compiler to generate symbolic debugging informa-
              tion in the object file, which increases the size of  the
              object  file. The /Zi option (Windows) tells the compiler
              to generate symbolic debugging information in a PDB file.

              is explicitly specified in the same command line.

              On  Linux*  OS  using Intel® 64 architecture and Linux OS
              and Mac OS* X systems using IA-32 architecture,  specify-
              ing the -g or -O0 option sets the -fno-omit-frame-pointer
              option.

              When compiling under Microsoft  Visual  Studio*  2005  or
              when  option  /Qvc8 is used, the /Zd option is treated as
              equivalent to the /Z7 option. That is, the debug informa-
              tion  is  emitted  to  the  object file by either option.
              There is no way to emit  debug  information  to  the  pdb
              file.  This  is  to  maintain compatibility with previous
              versions of the Intel compiler's behavior when performing
              parallel builds.

              Alternate Options:

              /Zi               Linux and Mac OS X: None

       -g0

              Disables generation of symbolic debug information.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler  generates symbolic debug
                                information.

              Description:

              This option disables generation of symbolic debug  infor-
              mation.

              Alternate Options:

              None

       -gcc

       -no-gcc

       -gcc-sys

              Determines  whether  certain  GNU  macros  are defined or
              undefined.

              This  option  determines whether the GNU macros __GNUC__,
              __GNUC_MINOR__, and __GNUC_PATCHLEVEL__  are  defined  or
              undefined.

              Option            Description

              -gcc              Defines GNU macros.

              -no-gcc           Undefines GNU macros.

              -gcc-sys          Defines GNU macros only during compila-
                                tion of system headers.

              Alternate Options:

              None

       -gcc-name=name

              Specifies the name of the gcc  compiler  that  should  be
              used to set up the environment for C compilations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              name              Is the name of the gcc compiler to use.
                                It can include a full path.

              Default:

              OFF               The  compiler locates the gcc libraries
                                in the gcc install directory.

              Description:

              This option specifies the name of the gcc  compiler  that
              should  be  used to set up the environment for C compila-
              tions.

              This  option  is  helpful  when  you  are  referencing  a
              non-standard gcc installation.

              The C++ equivalent to option -gcc-name is -gxx-name.

              Alternate Options:

              None

       -gcc-version=n


                                340            Specifies gcc  3.4  com-
                                               patibility.

                                400            Specifies  gcc  4.0 com-
                                               patibility.

                                410            Specifies gcc  4.1  com-
                                               patibility.

                                411            Specifies  gcc 4.11 com-
                                               patibility.

                                420            Specifies gcc  4.2  com-
                                               patibility.

                                430            Specifies  gcc  4.3 com-
                                               patibility.

              Default:

              OFF               This option defaults to  the  installed
                                version of gcc.

              Description:

              This  option  provides  compatible  behavior with gcc. It
              selects the version of gcc with  which  you  achieve  ABI
              interoperability.

              Alternate Options:

              None

       -gdwarf-2

              Enables  generation  of  debugging  information using the
              DWARF Version 2 format.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No debug information is generated. How-
                                ever, if compiler option -g  is  speci-
                                fied,  debugging  information is gener-
                                ated in the DWARF Version 2 format with
                                some DWARF Version 3 extensions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No debug information is generated. How-
                                ever,  if  compiler option -g is speci-
                                fied, debugging information  is  gener-
                                ated in the DWARF Version 2 format with
                                some DWARF Version 3 extensions.

              Description:

              This option enables generation of  debugging  information
              using the DWARF Version 3 format.

              When  you  specify  this  option,  the compiler will emit
              DWARF version 3-compatible debugging  information,  which
              can  be  used  by  debuggers such as gdb and idb. It also
              generates additional debugging information for  optimized
              code, such as end of prologue markers.

              Alternate Options:

              None

       -global-hoist

       -no-global-hoist

              Enables  certain optimizations that can move memory loads
              to a point earlier in the program  execution  than  where
              they appear in the source.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -global-hoist     Certain  optimizations are enabled that
                                can move memory loads.

              Description:

              This option enables certain optimizations that  can  move

       -guide[=n]

              Lets  you set a level of guidance for auto-vectorization,
              auto-parallelization, and data transformation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  an  optional  value  specifying the
                                level of guidance to be provided.

                                The values available are 1  through  4.
                                Value  1  indicates a standard level of
                                guidance. Value 4  indicates  the  most
                                advanced  level  of  guidance.  If n is
                                omitted, the default is 4.

              Default:

              OFF               You do not receive guidance  about  how
                                to  improve  optimizations  for  paral-
                                lelization,  vectorization,  and   data
                                transformation.

              Description:

              This option lets you set a level of guidance (advice) for
              auto-vectorization, auto-parallelization, and data trans-
              formation.  It  causes  the compiler to generate messages
              suggesting ways to improve these optimizations.

              When this option is specified, the compiler does not pro-
              duce any objects or executables.

              You  must  also  specify option –parallel (Linux* OS and
              Mac  OS*  X)  or  /Qparallel  (Windows*  OS)  to  receive
              auto-parallelization guidance.

              You  can  set levels of guidance for the individual guide
              optimizations by specifying one of the following options:


              data transformation
                                -guide-data-trans  (Linux OS and Mac OS
                                X) or /Qguide-data-trans (Windows OS)

              auto-parallelization
                                -guide-par (Linux OS and Mac OS  X)  or
                                /Qguide-par (Windows OS)

              three individual guide optimizations specified.

              In debug mode, this option has no effect unless option O2
              (or  higher)  is explicitly specified in the same command
              line.

              NOTE: You can specify –diag-disable (Linux OS and Mac OS
              X) or /Qdiag-disable (Windows OS) to prevent the compiler
              from issuing one or more diagnostic messages.

              Alternate Options:

              None

       -guide-data-trans[=n]

              Lets you set a level of guidance for data transformation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is an  optional  value  specifying  the
                                level of guidance to be provided.

                                The values available are 1 and 2. Value
                                1 indicates a standard level  of  guid-
                                ance. Value 2 indicates a more advanced
                                level of guidance. If n is omitted, the
                                default is 2.

              Default:

              OFF               You  do  not receive guidance about how
                                to  improve  optimizations   for   data
                                transformation.

              Description:

              This  option  lets  you  set a level of guidance for data
              transformation. It causes the compiler to  generate  mes-
              sages suggesting ways to improve that optimization.

              Alternate Options:

              None

       -guide-file[=filename]

              Causes  the  results of guided auto-parallelization to be
              output to a file.


              This option causes  the  results  of  guided  auto-paral-
              lelization to be output to a file.

              This  option  is  ignored  unless you also specify one or
              more of the following options: option -guide, -guide-vec,
              -guide-data-trans,  or  -guide-par (Linux* OS and Mac OS*
              X), or option /Qguide,  /Qguide-vec,  /Qguide-data-trans,
              or /Qguide-par (Windows* OS).

              If  you  do not specify a path, the file is placed in the
              current working directory.

              If there is already a file named  filename,  it  will  be
              overwritten.

              You  can include a file extension in filename.  For exam-
              ple, if file.txt is specified, the  name  of  the  output
              file is file.txt. If you do not provide a file extension,
              the name of the file is filename.guide.

              If you do not specify filename, the name of the  file  is
              name-of-the-first-source-file.guide.  This  is  also  the
              name of the file if the name specified for filename  con-
              flicts  with  a  source file name provided in the command
              line.

              NOTE: If you specify -guide-file or /Qguide-file and  you
              also  specify  -guide-file-append (Linux OS and Mac OS X)
              or /Qguide-file-append  (Windows  OS),  the  last  option
              specified on the command line takes precedence.

              Alternate Options:

              None

       -guide-file-append[=filename]

              Causes  the  results of guided auto-parallelization to be
              appended to a file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is  the name of the file to be appended
                                to. It can include a path.

              Default:

              OFF               Messages that are generated  by  guided
                                auto-parallelization   are   output  to

              filename in the current working directory.

              If filename is not found, then a new file with that  name
              is created in the current working directory.

              If  you  do not specify a file extension, the name of the
              file is filename.guide.

              If the name  specified  for  filename  conflicts  with  a
              source  file  name provided in the command line, the name
              of the file is name-of-the-first-source-file.guide.

              NOTE:    If    you    specify    -guide-file-append    or
              /Qguide-file-append  and  you  also  specify  -guide-file
              (Linux OS and Mac OS X) or   /Qguide-file  (Windows  OS),
              the  last  option  specified  on  the  command line takes
              precedence.

              Alternate Options:

              None

       guide-opts=string

              Tells the compiler to analyze certain code  and  generate
              recommendations that may improve optimizations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              string            Is the text denoting the code  to  ana-
                                lyze.  The  string  must  appear within
                                quotes. It can take one or more of  the
                                following forms: filenamefilename, rou-
                                tinefilename, range [, range]...  file-
                                name, routine, range [, range]...

                                If  you  specify  more  than one of the
                                above forms in a  string,  a  semicolon
                                must  appear  between each form. If you
                                specify  more  than  one  range  in   a
                                string,  a  comma  must  appear between
                                each range. Optional blanks can  follow
                                each  parameter  in the forms above and
                                they can also follow  each  form  in  a
                                string.

                                filename       Specifies  the name of a
                                               file to be analyzed.  It
                                               can include a path.


                                               The  compiler  tries  to
                                               uniquely  identify   the
                                               routine that corresponds
                                               to the specified routine
                                               name. It may select mul-
                                               tiple routines  to  ana-
                                               lyze,  especially if the
                                               following is true:

                                               · More than one  routine
                                                 has the specified rou-
                                                 tine name, so the rou-
                                                 tine     cannot     be
                                                 uniquely identified.

                                               · No parameter  informa-
                                                 tion  has  been speci-
                                                 fied  to  narrow   the
                                                 number   of   routines
                                                 selected as matches.

                                range          Specifies  a  range   of
                                               line  numbers to analyze
                                               in the file  or  routine
                                               specified.   The   range
                                               must  be  specified   in
                                               integers in the form:

                                               first_line_num-
                                               ber-last_line_number

                                               The hyphen  between  the
                                               line      numbers     is
                                               required.

              Default:

              OFF               You do not receive guidance on  how  to
                                improve optimizations.  However, if you
                                specify option -guide  (Linux*  OS  and
                                Mac  OS*  X)  or /Qguide (Windows* OS),
                                the  compiler  analyzes  and  generates
                                recommendations  for all the code in an
                                application

              Description:

              This option tells the compiler to  analyze  certain  code
              and    generate    recommendations   that   may   improve
              optimizations.


              Alternate Options:

              None

       -guide-par[=n]

              Lets you set a level of  guidance  for  auto-paralleliza-
              tion.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is an  optional  value  specifying  the
                                level of guidance to be provided.

                                The values available are 1 and 2. Value
                                1 indicates a standard level  of  guid-
                                ance. Value 2 indicates a more advanced
                                level of guidance. If n is omitted, the
                                default is 2.

              Default:

              OFF               You  do  not receive guidance about how
                                to  improve  optimizations  for  paral-
                                lelization.

              Description:

              This  option  lets  you  set  a  level  of  guidance  for
              auto-parallelization. It causes the compiler to  generate
              messages suggesting ways to improve that optimization.

              You must also specify option -parallel (Linux* OS and Mac
              OS* X) or /Qparallel (Windows* OS) to receive auto-paral-
              lelization guidance.

              Alternate Options:

              None

       -guide-vec[=n]

              Lets  you set a level of guidance for auto-vectorization.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  an  optional  value  specifying the
              Description:

              This  option  lets  you  set  a  level  of  guidance  for
              auto-vectorization.  It  causes  the compiler to generate
              messages suggesting ways to improve that optimization.

              Alternate Options:

              None

       -gxx-name=name

              Specifies the name of the g++  compiler  that  should  be
              used to set up the environment for C++ compilations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              name              Is the name of the g++ compiler to use.
                                It can include a full path.

              Default:

              OFF               The  compiler  uses the PATH setting to
                                find the g++ compiler and resolve envi-
                                ronment settings.

              Description:

              This  option  specifies the name of the g++ compiler that
              should be used to set up the environment for C++ compila-
              tions.

              The C equivalent to option -gxx-name is -gcc-name.

              NOTE:  When compiling a C++ file with icc, g++ is used to
              get the environment.

              Alternate Options:

              None

       -H

              Tells the compiler to display the include file order  and
              continue compilation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:


       -help[category]

              Displays  all available compiler options or a category of
              compiler options.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              category          Is  a  category  or class of options to
                                display. Possible values are:

                                advanced       Displays advanced  opti-
                                               mization   options  that
                                               allow  fine  tuning   of
                                               compilation   or   allow
                                               control  over   advanced
                                               features   of  the  com-
                                               piler.

                                codegen        Displays Code Generation
                                               options.

                                compatibility  Displays options affect-
                                               ing language compatibil-
                                               ity.

                                component      Displays   options   for
                                               component control.

                                data           Displays options related
                                               to   interpretation   of
                                               data in programs or  the
                                               storage of data.

                                deprecated     Displays   options  that
                                               have been deprecated.

                                diagnostics    Displays  options   that
                                               affect  diagnostic  mes-
                                               sages displayed  by  the
                                               compiler.

                                float          Displays   options  that
                                               affect    floating-point
                                               operations.

                                help           Displays  all the avail-
                                               able help categories.

                                inline         Displays  options   that
                                misc           Displays   miscellaneous
                                               options that do not  fit
                                               within other categories.

                                openmp         Displays OpenMP and par-
                                               allel         processing
                                               options.

                                opt            Displays  options   that
                                               help  you optimize code.

                                output         Displays  options   that
                                               provide   control   over
                                               compiler output.

                                pgo            Displays Profile  Guided
                                               Optimization       (PGO)
                                               options.

                                preproc        Displays  options   that
                                               affect     preprocessing
                                               operations.

                                reports        Displays   options   for
                                               optimization reports.

              Default:

              OFF               No  list  is displayed unless this com-
                                piler option is specified.

              Description:

              This option displays all available compiler options or  a
              category  of  compiler options. If category is not speci-
              fied, all available compiler options  are  displayed.  On
              Linux*  systems,  this  option  can  also be specified as
              --help.

              Alternate Options:

              Linux and Mac OS X: None

       -help-pragma

              Displays all supported pragmas.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

       -Idir

              Specifies an additional directory to search  for  include
              files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the  additional  directory  for  the
                                search.

              Default:

              OFF               The  default  directory is searched for
                                include files.

              Description:

              This option specifies an additional directory  to  search
              for include files. To specify multiple directories on the
              command line, repeat the include option for  each  direc-
              tory.

              Alternate Options:

              None

       -icc

       -no-icc

              Determines  whether  certain  Intel  compiler  macros are
              defined or undefined.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -icc              The  __INTEL_COMPILER macros are set to
                                represent the current  version  of  the
                                compiler.

              Description:

              This  option  determines  whether  certain Intel compiler
              macros are defined or undefined.

              Arguments:

              dir               Is the name of the directory to add.

              Default:

              OFF               Include file search paths include  cer-
                                tain default directories.

              Description:

              This  option  adds a directory to the second include file
              search path (after -I).

              Alternate Options:

              None

       -imacros file

              Allows a header to be specified that is included in front
              of the other headers in the translation unit.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              file              Name of header file.

              Default:

              OFF

              Description:

              Allows a header to be specified that is included in front
              of the other headers in the translation unit.

              Alternate Options:

              None

       -inline-calloc

       -no-inline-calloc

              Tells  the  compiler to inline calls to calloc() as calls
              to malloc() and memset().

              Architectures: IA-32, Intel® 64 architectures

              enable  inlining  as  a sequence of store operations when
              the size is a compile time constant.

              NOTE: Many routines in the supplied  libraries  are  more
              highly  optimized  for  Intel®  microprocessors  than for
              non-Intel microprocessors

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  include  or utilize options that
              optimize for instruction sets that are available in  both
              Intel  and  non-Intel  microprocessors  (for example SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options for Intel compilers, including some that are  not
              specific  to  Intel  micro-architecture, are reserved for
              Intel microprocessors.  For  a  detailed  description  of
              Intel  compiler  options,  including the instruction sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of  Intel compiler products are more highly optimized for
              Intel microprocessors  than  for  other  microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible   microprocessors,  depending  on  the  options  you
              select, your code and other factors, you likely will  get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development tools may or may not  optimize  to  the  same
              degree  for  non-Intel  microprocessors for optimizations
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-

              Specifies  the  percentage  multiplier  that  should   be
              applied to all inlining options that define upper limits.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is a positive  integer  specifying  the
                                percentage  value. The default value is
                                100 (a factor of 1).

              Default:

              -no-inline-factor The compiler  uses  default  heuristics
                                for inline routine expansion.

              Description:

              This  option  specifies  the  percentage  multiplier that
              should be applied to all  inlining  options  that  define
              upper limits:

              · -inline-max-size and /Qinline-max-size

              · -inline-max-total-size and /Qinline-max-total-size

              · -inline-max-per-routine and /Qinline-max-per-routine

              · -inline-max-per-compile and /Qinline-max-per-compile

              This option takes the default value for each of the above
              options and multiplies it by n divided by 100. For  exam-
              ple,  if  200  is  specified,  all  inlining options that
              define upper limits are multiplied by a factor of 2. This
              option  is  useful  if  you  do  not want to individually
              increase each option limit.

              If you specify -no-inline-factor (Linux and Mac OS X)  or
              /Qinline-factor- (Windows), the following occurs:

              · Every  function  is  considered to be a small or medium
                function; there are no large functions.

              · There is no limit to the size a routine may  grow  when
                inline expansion is performed.

              · There  is  no limit to the number of times some routine
                may be inlined into a particular routine.

              · There is no limit to the number of times  inlining  can
                be applied to a compilation unit.

       -inline-forceinline

              Specifies that an inline routine should be inlined  when-
              ever the compiler can do so.

              Architectures: IA-32, Intel® 64 architectures

              Default:

              OFF               The compiler  uses  default  heuristics
                                for inline routine expansion.

              Description:

              This  option  specifies  that  a inline routine should be
              inlined whenever the compiler can do so. This causes  the
              routines marked with an inline keyword or attribute to be
              treated as if they were "forceinline".

              NOTE: Because C++ member functions whose definitions  are
              included  in  the class declaration are considered inline
              functions by default, using this option  will  also  make
              these member functions "forceinline" functions.

              The  "forceinline"  condition  can  also  be specified by
              using the keyword __forceinline.

              To see compiler values  for  important  inlining  limits,
              specify compiler option -opt-report (Linux and Mac OS) or
              /Qopt-report (Windows).

              CAUTION: When you use this option to change  the  meaning
              of  inline  to "forceinline", the compiler may do so much
              additional inlining that it runs out of memory and termi-
              nates with an "out of memory" message.

              Alternate Options:

              None

       -inline-level=n

              Specifies the level of inline function expansion.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the inline function expansion level.
                                Possible values are 0, 1, and 2.

              Default:

              Option            Description

              -inline-level=0 or Ob0
                                Disables inlining of user-defined func-
                                tions. Note  that  statement  functions
                                are always inlined.

              -inline-level=1 or Ob1
                                Enables inlining when an inline keyword
                                or an inline  attribute  is  specified.
                                Also  enables inlining according to the
                                C++ language.

              -inline-level=2 or Ob2
                                Enables inlining of any function at the
                                compiler's discretion.

              Alternate Options:

              Linux: -Ob  (this is a deprecated option)

              Mac OS X: None

       -inline-max-per-compile=n

       -no-inline-max-per-compile

              Specifies  the  maximum  number  of times inlining may be
              applied to an entire compilation unit.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  a  positive  integer that specifies
                                the number of  times  inlining  may  be
                                applied.

              Default:

              -no-inline-max-per-compile
                                The  compiler  uses  default heuristics
                                for inline routine expansion.

              Description:

              This option the maximum number of times inlining  may  be
              applied to an entire compilation unit. It limits the num-
              ber of times that inlining can be applied.

              For  compilations  using  Interprocedural   Optimizations
              that it runs out of memory and terminates with an "out of
              memory" message.

              Alternate Options:

              None

       -inline-max-per-routine=n

       -no-inline-max-per-routine

              Specifies the maximum number of  times  the  inliner  may
              inline into a particular routine.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is a positive  integer  that  specifies
                                the maximum number of times the inliner
                                may inline into a particular routine.

              Default:

              -no-inline-max-per-routine
                                The compiler  uses  default  heuristics
                                for inline routine expansion.

              Description:

              This  option  specifies  the  maximum number of times the
              inliner may inline into a particular routine.  It  limits
              the  number  of times that inlining can be applied to any
              routine.

              If you specify -no-inline-max-per-routine (Linux and  Mac
              OS X) or /Qinline-max-per-routine- (Windows), there is no
              limit to the number of times some routine may be  inlined
              into a particular routine.

              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              CAUTION: When you use this option to increase the default
              limit, the compiler may do so  much  additional  inlining
              that it runs out of memory and terminates with an "out of
              memory" message.
              Arguments:

              n                 Is a positive  integer  that  specifies
                                the  minimum  size  of what the inliner
                                considers to be a large routine.

              Default:

              -inline-max-size  The compiler sets the maximum size  (n)
                                dynamically, based on the platform.

              Description:

              This  option  specifies  the  lower limit for the size of
              what the inliner considers to be a large routine (a func-
              tion).  The inliner classifies routines as small, medium,
              or large. This option specifies the boundary between what
              the  inliner  considers  to be medium and large-size rou-
              tines.

              The inliner prefers to inline small routines.  It  has  a
              preference against inlining large routines. So, any large
              routine is highly unlikely to be inlined.

              If you specify -no-inline-max-size (Linux and Mac  OS  X)
              or  /Qinline-max-size- (Windows), there are no large rou-
              tines. Every routine is either a small or medium routine.

              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              CAUTION: When you use this option to increase the default
              limit, the compiler may do so  much  additional  inlining
              that it runs out of memory and terminates with an "out of
              memory" message.

              Alternate Options:

              None

       -inline-max-total-size=n

       -no-inline-max-total-size

              Specifies how much larger a  routine  can  normally  grow
              when inline expansion is performed.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              mally  grow when inline expansion is performed. It limits
              the potential size of the routine. For example,  if  2000
              is specified for n, the size of any routine will normally
              not increase by more than 2000.

              If you specify -no-inline-max-total-size (Linux  and  Mac
              OS  X) or /Qinline-max-total-size- (Windows), there is no
              limit to the size a routine may grow when  inline  expan-
              sion is performed.

              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              CAUTION: When you use this option to increase the default
              limit, the compiler may do so  much  additional  inlining
              that it runs out of memory and terminates with an "out of
              memory" message.

              Alternate Options:

              None

       -inline-min-size=n

       -no-inline-min-size

              Specifies the upper  limit  for  the  size  of  what  the
              inliner considers to be a small routine.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is a positive  integer  that  specifies
                                the  maximum  size  of what the inliner
                                considers to be a small routine.

              Default:

              -no-inline-min-size
                                The compiler  uses  default  heuristics
                                for inline routine expansion.

              Description:

              This  option  specifies  the  upper limit for the size of
              what the inliner considers to be a small routine (a func-
              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              To  see  compiler  values  for important inlining limits,
              specify compiler option -opt-report (Linux and Mac OS  X)
              or /Qopt-report (Windows).

              CAUTION: When you use this option to increase the default
              limit, the compiler may do so  much  additional  inlining
              that it runs out of memory and terminates with an "out of
              memory" message.

              Alternate Options:

              None

       -intel-extensions

       -no-intel-extensions

              Enables or disables all Intel® C and Intel® C++  language
              extensions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The Intel® C and  Intel®  C++  language
                                extensions are enabled.

              Description:

              This  option  enables or disables all Intel® C and Intel®
              C++ language extensions.

              Option   –no-intel-extensions  (Linux*  OS)   or   /Qin-
              tel-extensions-  (Windows*  OS) disables all Intel® C and
              Intel® C++ language extensions. For example, it  disables
              the  Intel®   Cilk ™  Plus  language  extensions,  which
              include array notation, and it disables support  for  the
              decimal floating-point types.

              Alternate Options:

              None

       -ip
              OFF               Some  limited interprocedural optimiza-
                                tions occur, including inline  function
                                expansion   for   calls   to  functions
                                defined within the current source file.
                                These  optimizations  are  a  subset of
                                full intra-file  interprocedural  opti-
                                mizations.  Note  that  this setting is
                                not the same as -no-ip (Linux  and  Mac
                                OS X).

              Description:

              This option determines whether additional interprocedural
              optimizations for single-file compilation are enabled.

              Options -ip (Linux and  Mac  OS  X)  and  /Qip  (Windows)
              enable  additional interprocedural optimizations for sin-
              gle-file compilation.

              Options -no-ip (Linux and Mac OS X) and  /Qip-  (Windows)
              may  not  disable  inlining.  To  ensure that inlining of
              user-defined    functions    is     disabled,     specify
              -inline-level=0or  -fno-inline  (Linux  and Mac OS X), or
              specify /Ob0 (Windows). To ensure  that  inliningof  com-
              piler    intrinsic   functions   is   disabled,   specify
              -fno-builtin (Linux and MacOS X) or /Oi- (Windows).

              Alternate Options:

              None

       -ip-no-inlining

              Disables full and partial inlining enabled by interproce-
              dural optimization options.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Inlining  enabled  by   interprocedural
                                optimization options is performed.

              Description:

              This option disables full and partial inlining enabled by
              the following interprocedural optimization options:


              Disables  partial  inlining  enabled  by  interprocedural
              optimization options.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Inlining  enabled  by   interprocedural
                                optimization options is performed.

              Description:

              This option disables partial inlining enabled by the fol-
              lowing interprocedural optimization options:

              · On Linux and Mac OS X systems: -ip or -ipo

              · On Windows systems: /Qip or /Qipo

              It has no effect on other interprocedural  optimizations.

              Alternate Options:

              None

       -ipo[n]

              Enables interprocedural optimization between files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  an  optional integer that specifies
                                the number of object files the compiler
                                should  create.  The  integer  must  be
                                greater than or equal to 0.

              Default:

              OFF               Multifile interprocedural  optimization
                                is not enabled.

              Description:

              This  option enables interprocedural optimization between
              files. This  is  also  called  multifile  interprocedural
              applications.

              If  n  is greater than 0, the compiler generates n object
              files, unless n exceeds the number of source  files  (m),
              in which case the compiler generates only m object files.

              If you do not specify n, the default is 0.

              Alternate Options:

              None

       -ipo-c

              Tells the compiler to optimize across multiple files  and
              generate a single object file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not generate a multi-
                                file object file.

              Description:

              This  option tells the compiler to optimize across multi-
              ple files  and  generate  a  single  object  file  (named
              ipo_out.o  on  Linux and Mac OS X systems; ipo_out.obj on
              Windows systems).

              It performs the same optimizations as -ipo (Linux and Mac
              OS  X)  or  /Qipo (Windows), but compilation stops before
              the final link stage, leaving an  optimized  object  file
              that can be used in further link steps.

              Alternate Options:

              None

       -ipo-jobsn

              Specifies  the  number  of commands (jobs) to be executed
              simultaneously during the link phase  of  Interprocedural
              Optimization (IPO).

              Architectures: IA-32, Intel® 64 architectures

              This option specifies the number of commands (jobs) to be
              executed simultaneously during the link phase  of  Inter-
              procedural  Optimization (IPO). It should only be used if
              the link-time compilation is  generating  more  than  one
              object. In this case, each object is generated by a sepa-
              rate compilation, which can be done in parallel.

              This option can be affected  by  the  following  compiler
              options:

              · -ipo  (Linux  and  Mac  OS  X)  or /Qipo (Windows) when
                applications are large enough that the compiler decides
                to generate multiple object files.

              · -ipon  (Linux  and Mac OS X) or /Qipon (Windows) when n
                is greater than 1.

              · -ipo-separate (Linux) or /Qipo-separate (Windows)

              CAUTION:  Be  careful  when  using  this  option.  On   a
              multi-processor  system with lots of memory, it can speed
              application build time. However, if n is greater than the
              number of processors, or if there is not enough memory to
              avoid thrashing, this  option  can  increase  application
              build time.

              Alternate Options:

              None

       -ipo-S

              Tells  the compiler to optimize across multiple files and
              generate a single assembly file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not generate a multi-
                                file assembly file.

              Description:

              This option tells the compiler to optimize across  multi-
              ple  files  and  generate  a  single assembly file (named
              ipo_out.s on Linux and Mac OS X systems;  ipo_out.asm  on
              Windows systems).

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler decides whether to  create
                                one or more object files.

              Description:

              This  option  tells  the  compiler to generate one object
              file for every source file. It overrides any -ipo (Linux)
              or /Qipo (Windows) specification.

              Alternate Options:

              None

       -ipp[=lib]

              Tells  the  compiler  to  link  to the some or all of the
              Intel® Integrated  Performance  Primitives  (Intel®  IPP)
              libraries.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              lib               Indicates the Intel® IPP libraries that
                                the compiler should link  to.  Possible
                                values are:

                                common         Tells  the  compiler  to
                                               link  using   the   main
                                               libraries  set.  This is
                                               the   default   if   the
                                               option is specified with
                                               no lib.

                                crypto         Tells  the  compiler  to
                                               link   using   the  main
                                               libraries  set  and  the
                                               crypto library.

                                nonpic (Linux only)
                                               Tells  the  compiler  to
                                               link using  the  version
                                               of the libraries that do

                                Intel® IPP libraries.

              Description:

              The  option tells the compiler to link to the some or all
              of the Intel® Integrated Performance  Primitives  (Intel®
              IPP) libraries and include the Intel® IPP headers.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              Intel and non-Intel  microprocessors  (for  example  SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options  for Intel compilers, including some that are not
              specific to Intel micro-architecture,  are  reserved  for
              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  or  may not optimize to the same
              degree for non-Intel  microprocessors  for  optimizations
              that  are  not  unique  to  Intel microprocessors.  These
              optimizations include Intel® Streaming SIMD Extensions  2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3)  instruction sets and other optimizations.  Intel
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured by  Intel.   Microprocessor-dependent  opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              Option for indicating the prefix for referencing directo-
              ries containing header files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF

              Description:

              Options  for indicating the prefix for referencing direc-
              tories containing header files. Use <prefix> with -iwith-
              prefix as a prefix.

              Alternate Options:

              None

       -iquote dir

              Add  directory  to  the  front of the include file search
              path for files included with quotes but not brackets.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the name of the directory to add.

              Default:

              OFF               The  compiler  does not add a directory
                                to the front of the include file search
                                path.

              Description:

              Add  directory  to  the  front of the include file search
              path for files included with quotes but not brackets.

              Alternate Options:

              None

       -isystemdir

              Specifies a directory to add to the start of  the  system
              Description:

              This option specifies a directory to add  to  the  system
              include  path. The compiler searches the specified direc-
              tory for include files after it searches all  directories
              specified  by  the  -I  compiler  option  but  before  it
              searches the standard system directories. This option  is
              provided for compatibility with gcc.

              Alternate Options:

              None

       -iwithprefix<dir>

              Appends  a  directory to the prefix passed in by -iprefix
              and puts it on the include search path at the end of  the
              include directories.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF

              Description:

              This  option  appends a directory to the prefix passed in
              by -iprefix and puts it on the include search path at the
              end of the include directories.

              Alternate Options:

              None

       -iwithprefixbefore <dir>

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

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              Tells  the  linker to search for a specified library when
              linking.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              string            Specifies  the library (libstring) that
                                the linker should search.

              Default:

              OFF               The  linker   searches   for   standard
                                libraries in standard directories.

              Description:

              This  option  tells  the linker to search for a specified
              library when linking.

              When resolving references, the linker  normally  searches
              for  libraries in several standard directories, in direc-
              tories specified by the L option,  then  in  the  library
              specified by the l option.

              The  linker  searches  and processes libraries and object
              files in the order they are  specified.  So,  you  should
              specify  this  option  following  the last object file it
              applies to.

              Alternate Options:

              None

       -Ldir

              Tells the linker to search for libraries in  a  specified
              directory before searching the standard directories.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the name of the directory to  search
                                for libraries.

              Default:

              OFF               The linker searches the standard direc-
                                tories for libraries.


              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              code              Indicates the instructions to be gener-
                                ated  for the set of processors in each
                                description.  Many  of  the   following
                                descriptions  refer to Intel® Streaming
                                SIMD Extensions (Intel® SSE)  and  Sup-
                                plemental   Streaming  SIMD  Extensions
                                (Intel® SSSE). Possible values are:

                                avx            May   generate    Intel®
                                               Advanced  Vector  Exten-
                                               sions   (Intel®    AVX),
                                               SSE4.2,  SSE4.1,  SSSE3,
                                               SSE3,  SSE2,   and   SSE
                                               instructions.

                                sse4.2         May    generate   Intel®
                                               SSE4.2,  SSE4.1,  SSSE3,
                                               SSE3,   SSE2,   and  SSE
                                               instructions.

                                sse4.1         May   generate    Intel®
                                               SSE4.1,   SSSE3,   SSE3,
                                               SSE2, and  SSE  instruc-
                                               tions.

                                ssse3          May    generate   Intel®
                                               SSSE3, SSE3,  SSE2,  and
                                               SSE instructions.

                                sse3           May    generate   Intel®
                                               SSE3,  SSE2,   and   SSE
                                               instructions.

                                sse2           May generate Intel® SSE2
                                               and  SSE   instructions.
                                               This   value   is   only
                                               available on Linux  sys-
                                               tems.

                                sse            This   option  has  been
                                               deprecated;  it  is  now
                                               the  same  as specifying
                                               ia32.

                                ia32           Generates        x86/x87
                                               generic   code  that  is
                                               compatible  with   IA-32

              Linux systems: -msse2 Mac OS X systems using IA-32 archi-
              tecture:  -msse3  Mac OS X systems using Intel® 64 archi-
              tecture: -mssse3
                                For more  information  on  the  default
                                values, see Arguments above.

              Description:

              This  option tells the compiler to generate code special-
              ized for the processor that executes your program.

              Code generated with these options should execute  on  any
              compatible, non-Intel processor with support for the cor-
              responding instruction set.

              Options -x and -m are mutually  exclusive.  If  both  are
              specified,  the  compiler uses the last one specified and
              generates a warning.

              For compatibility with gcc, the compiler allows the  fol-
              lowing  options  but  they have no effect. You will get a
              warning error, but the instructions associated  with  the
              name  will not be generated. You should use the suggested
              replacement options.

              gcc Compatibility Option
                                Suggested Replacement Option

              -mfma             -march=core-avx2

              -mbmi, -mavx2, -mlzcnt
                                -march=core-avx2

              -mmovbe           -march=atom -minstruction=movbe

              -mcrc32, -maes, -mpclmul, -mpopcnt
                                -march=corei7

              -mvzeroupper      -march=corei7-avx

              -mfsgsbase, -mrdrnd, -mf16c
                                -march=core-avx-i

              Alternate Options:

              Linux and Mac OS X: None

       -M

              Tells the compiler to generate makefile dependency  lines
              for each source file.
              This option  tells  the  compiler  to  generate  makefile
              dependency  lines  for  each  source  file,  based on the
              #include lines found in the source file.

              Alternate Options:

              None

       -m32

       -m64

              Tells the compiler to generate code for a specific archi-
              tecture.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler's behavior depends on  the
                                host system.

              Description:

              These  options  tell  the compiler to generate code for a
              specific architecture.

              Option            Description

              -m32              Tells the compiler to generate code for
                                IA-32 architecture.

              -m64              Tells the compiler to generate code for
                                Intel® 64 architecture.

              The -m32 and -m64 options are  the  same  as  Mac  OS*  X
              options  -arch  i386 and -arch x86_64, respectively. Note
              that these options are provided  for  compatibility  with
              gcc.  They  are  not  related to the Intel® C++  compiler
              option arch.

              Alternate Options:

              None

       -malign-double

              Aligns double, long double, and long long types for  bet-
              Aligns double, long double, and long long types for  bet-
              ter  performance for systems based on IA-32 architecture.

              Alternate Options:

              -align

       -map-opts (L*X only)

              Maps one or more compiler options to their equivalent  on
              a different operating system.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No platform mappings are performed.

              Description:

              This option maps one or more compiler  options  to  their
              equivalent on a different operating system. The result is
              output to stdout.

              On Windows systems, the options you provide are  presumed
              to  be Windows options, so the options that are output to
              stdout will be Linux equivalents. On Linux  systems,  the
              options  you provide are presumed to be Linux options, so
              the options that are output to  stdout  will  be  Windows
              equivalents.

              The tool can be invoked from the compiler command line or
              it can be used directly.

              No compilation is performed when the option mapping  tool
              is used.

              This option is useful if you have both compilers and want
              to convert scripts or makefiles.

              NOTE: Compiler options are mapped to their equivalent  on
              the  architecture  you are using. For example, if you are
              using a processor with IA-32 architecture, you will  only
              see  equivalent  options that are available on processors
              with IA-32 architecture.

              Alternate Options:


                                core-avx2      Generates code for  pro-
                                               cessors   that   support
                                               Intel®  Advanced  Vector
                                               Extensions   2   (Intel®
                                               AVX2),    Intel®    AVX,
                                               SSE4.2,  SSE4.1,  SSSE3,
                                               SSE3,  SSE2,   and   SSE
                                               instructions.

                                core-avx-i     Generates  code for pro-
                                               cessors   that   support
                                               Intel®  Advanced  Vector
                                               Extensions (Intel® AVX),
                                               including   instructions
                                               in Intel® Core 2™  pro-
                                               cessors in process tech-
                                               nology   smaller    than
                                               32nm,   Intel®   SSE4.2,
                                               SSE4.1,   SSSE3,   SSE3,
                                               SSE2,  and  SSE instruc-
                                               tions.

                                corei7-avx     Generates code for  pro-
                                               cessors   that   support
                                               Intel(R) Advanced Vector
                                               Extensions (Intel® AVX),
                                               Intel®  SSE4.2,  SSE4.1,
                                               SSSE3,  SSE3,  SSE2, and
                                               SSE instructions.

                                corei7         Generates    code    for
                                               Intel® Core™ i7 proces-
                                               sors    that     support
                                               Intel(R)  SSE4 Efficient
                                               Accelerated  String  and
                                               Text Processing instruc-
                                               tions. May also generate
                                               Intel®  SSE4 Vectorizing
                                               Compiler    and    Media
                                               Accelerator,      Intel®
                                               SSSE3, SSE3,  SSE2,  and
                                               SSE  instructions and it
                                               may  optimize  for   the
                                               Intel®  Core™ processor
                                               family.

                                atom           Generates code for  pro-
                                               cessors   that   support
                                               MOVBE      instructions,
                                               depending on the setting
                                               of option  -minstruction
                                               sor family.

                                pentium-m      Generates    code    for
                                               Intel® Pentium®  M  pro-
                                               cessors.

                                pentium4       Generates    code    for
                                               Intel® Pentium®  4  pro-
                                               cessors.  This  value is
                                               only available on

                                pentium3       Generates    code    for
                                               Intel® Pentium® III pro-
                                               cessors. This  value  is
                                               only available on Linux*
                                               OS.

              Default:

              OFF or -march=pentium4
                                On systems  using  IA-32  architecture,
                                the  compiler does not generate proces-
                                sor-specific code unless it is told  to
                                do  so.  On  systems  using  Intel®  64
                                architecture,  the  compiler  generates
                                code for Intel Pentium 4 processors.

              Description:

              This  option  tells  the  compiler to generate code for a
              specified processor.

              Specifying -march=pentium4 sets -mtune=pentium4.

              For compatibility, a number of historical processor  val-
              ues  are  also supported, but the generated code will not
              differ from the default.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  include  or utilize options that
              optimize for instruction sets that are available in  both
              Intel  and  non-Intel  microprocessors  (for example SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options for Intel compilers, including some that are  not
              specific  to  Intel  micro-architecture, are reserved for
              Intel microprocessors.  For  a  detailed  description  of
              Intel  compiler  options,  including the instruction sets
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-
              formance  of  any compiler or library; please let us know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              -march=pentium3   Linux: -xSSE

                                Mac OS X: None

              -march=pentium4 -march=pentium-m
                                Linux: -xSSE2

                                Mac OS X: None

              -march=core2      Linux: -xSSSE3

                                Mac OS X: None

       -masm=dialect (L*X only)

              Tells the compiler to generate the assembler output  file
              using a selected dialect.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dialect           Is the dialect to use for the assembler
                                output file.  Possible values are:

                                att            Tells  the  compiler  to

              Description:

              This option tells the compiler to generate the  assembler
              output file using a selected dialect.

              Alternate Options:

              None

       -mcmodel=mem_model (L*X only)

              Tells the compiler to use a specific memory model to gen-
              erate code and store data.

              Architectures: Intel® 64 architecture

              Arguments:

              mem_model         Is  the  memory  model to use. Possible
                                values are:

                                small          Tells  the  compiler  to
                                               restrict  code  and data
                                               to  the  first  2GB   of
                                               address    space.    All
                                               accesses  of  code   and
                                               data  can  be  done with
                                               Instruction      Pointer
                                               (IP)-relative   address-
                                               ing.

                                medium         Tells  the  compiler  to
                                               restrict   code  to  the
                                               first 2GB; it places  no
                                               memory   restriction  on
                                               data. Accesses  of  code
                                               can be done with IP-rel-
                                               ative  addressing,   but
                                               accesses of data must be
                                               done    with    absolute
                                               addressing.

                                large          Places     no     memory
                                               restriction on  code  or
                                               data.  All  accesses  of
                                               code and  data  must  be
                                               done    with    absolute
                                               addressing.

              Default:

              -mcmodel=small    On systems using  Intel®  64  architec-
              -mcmodel=large.  Allocation of memory larger than 2GB can
              be done with any setting of -mcmodel.

              IP-relative addressing requires  only  32  bits,  whereas
              absolute   addressing   requires   64-bits.   IP-relative
              addressing is somewhat faster. So, the small memory model
              has the least impact on performance.

              NOTE: When you specify -mcmodel=medium or -mcmodel=large,
              you must also specify compiler  option  -shared-intel  to
              ensure  that  the  correct  dynamic versions of the Intel
              run-time libraries are used.

              Alternate Options:

              None

       -MD

              Preprocess and compile, generating output file containing
              dependency information ending with extension .d.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not  generate  depen-
                                dency information.

              Description:

              Preprocess and compile, generating output file containing
              dependency information ending with extension .d.

              Alternate Options:

              None

              Tells the linker to search for unresolved references in a
              multithreaded, dynamic-link run-time library.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:
              None

       -mdynamic-no-pic (M*X only)

              Generates  code  that is not position-independent but has
              position-independent external references.

              Architectures: IA-32 architecture

              Arguments:

              None

              Default:

              OFF               All  references  are generated as posi-
                                tion independent.

              Description:

              This option generates code that is not  position-indepen-
              dent but has position-independent external references.

              The  generated code is suitable for building executables,
              but it is not suitable for building shared libraries.

              This option may reduce code size and produce  more  effi-
              cient code. It overrides the -fpic compiler option.

              Alternate Options:

              None

       -MFfilename

              Tells the compiler to generate makefile dependency infor-
              mation in a file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is the name of the file where the make-
                                file dependency information  should  be
                                placed.

              Default:

              OFF               The compiler does not generate makefile
                                dependency information in files.

              Description:
              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not generate makefile
                                dependency information in files.

              Description:

              This  option  tells  the  compiler  to  generate makefile
              dependency lines for each source file. It is  similar  to
              /QM,  but  it  treats  missing  header files as generated
              files.

              Alternate Options:

              None

       -minstruction=[no]movbe

              Determines whether MOVBE instructions are  generated  for
              Intel processors.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              –minstruction=nomovbe
                                The compiler does  not  generate  MOVBE
                                instructions  for Intel® Atom™ proces-
                                sors.

              Description:

              This option determines  whether  MOVBE  instructions  are
              generated  for  Intel processors. To use this option, you
              must also specify -xSSSE3_ATOM (Linux and Mac  OS  X)  or
              /QxSSSE3_ATOM (Windows).

              If  -minstruction=movbe  or /Qinstruction:movbe is speci-
              fied, the following occurs:

              · MOVBE instructions are generated that are  specific  to
                the Intel® Atom™ processor.

              · Generated  executables  can be run on non-Intel® Atom™
                processors that support Intel® SSE3.

              Alternate Options:

              None

       -mkl[=lib]

              Tells the compiler to link to certain parts of the Intel®
              Math Kernel Library (Intel® MKL).

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              lib               Indicates the part of the library  that
                                the  compiler  should link to. Possible
                                values are:

                                parallel       Tells  the  compiler  to
                                               link  using the threaded
                                               part of the Intel®  MKL.
                                               This  is  the default if
                                               the option is  specified
                                               with no lib.

                                sequential     Tells  the  compiler  to
                                               link      using      the
                                               non-threaded part of the
                                               Intel® MKL.

                                cluster        Tells  the  compiler  to
                                               link  using  the cluster
                                               part and the  sequential
                                               part  of the Intel® MKL.

              Default:

              OFF               The  compiler  does  not  link  to  the
                                Intel® MKL.

              Description:

              This  option  tells the compiler to link to certain parts
              of the Intel® Math Kernel Library (Intel® MKL).

              Optimization Notice

              = = = = = = = = = =

              Intel microprocessors  than  for  other  microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible   microprocessors,  depending  on  the  options  you
              select, your code and other factors, you likely will  get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development tools may or may not  optimize  to  the  same
              degree  for  non-Intel  microprocessors for optimizations
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-
              formance  of  any compiler or library; please let us know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -MM

              Tells the compiler to generate makefile dependency  lines
              for each source file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not generate makefile
              Tells  the compiler to generate an output file containing
              dependency information.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler does not generate an out-
                                put file containing dependency informa-
                                tion.

              Description:

              This  option tells the compiler to preprocess and compile
              a file, then generate an output file (with extension  .d)
              containing dependency information.

              It  is  similar  to  /QMD, but it does not include system
              header files.

              Alternate Options:

              None

       -MP

              Tells the compiler to add a phony target for each  depen-
              dency.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not  generate  depen-
                                dency  information unless it is told to
                                do so.

              Description:

              This option tells the compiler to add a phony target  for
              each dependency.

              Note  that  this option is not related to Windows* option
              /MP.

              Default:

              OFF               The compiler provides good accuracy and
                                run-time  performance at the expense of
                                less consistent floating-point results.

              Description:

              This   option  improves  floating-point  consistency.  It
              ensures the out-of-range check of operands  of  transcen-
              dental  functions  and  improves  the  accuracy of float-
              ing-point compares.

              This option prevents the compiler from  performing  opti-
              mizations that change NaN comparison semantics and causes
              all values to be truncated to declared  precision  before
              they are used in comparisons. It also causes the compiler
              to  use  library  routines  that  give  better  precision
              results  compared to the X87 transcendental instructions.

              This option disables fewer  optimizations  and  has  less
              impact on performance than option mp or Op.

              Alternate Options:

              None

       -MQtarget

              Changes  the  default  target rule for dependency genera-
              tion.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              target            Is the target rule to use.

              Default:

              OFF               The  default  target  rule  applies  to
                                dependency generation.

              Description:

              This option changes the default target  rule  for  depen-
              dency  generation.  It is similar to -MT, but quotes spe-
              cial Make characters.

              Alternate Options:


              OFF               The compiler does not use registers  to
                                pass arguments.

              Description:

              Control  the  number registers used to pass integer argu-
              ments.

              Alternate Options:

              None

       -MTtarget

              Changes the default target rule  for  dependency  genera-
              tion.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              target            Is the target rule to use.

              Default:

              OFF               The  default  target  rule  applies  to
                                dependency generation.

              Description:

              This  option  changes  the default target rule for depen-
              dency generation.

              Alternate Options:

              None

       -mtune=processor

              Performs optimizations for specific processors.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              processor         Is the processor for which the compiler
                                should perform optimizations.    Possi-
                                ble values are:

                                generic        Generates code  for  the
                                               compiler's       default
                                               nology.

                                pentiumpro     Optimizes   for   Intel®
                                               Pentium® Pro, Intel Pen-
                                               tium II, and Intel  Pen-
                                               tium III processors.

                                pentium4       Optimizes   for   Intel®
                                               Pentium® 4 processors.

                                pentium4m      Optimizes   for   Intel®
                                               Pentium®   4  processors
                                               with MMX technology.

              Default:

              generic           Code is generated  for  the  compiler's
                                default behavior.

              Description:

              This  option  performs optimizations for specific proces-
              sors.

              The resulting executable is backwards compatible and gen-
              erated  code  is  optimized  for specific processors. For
              example, code generated  with  -mtune=pentium4  will  run
              correctly  on  Core2  processors, but it might not run as
              fast as if it had been generated using -mtune=core2.

              The following table shows on which architecture  you  can
              use each value.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              Intel and non-Intel  microprocessors  (for  example  SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options  for Intel compilers, including some that are not
              specific to Intel micro-architecture,  are  reserved  for
              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured by  Intel.   Microprocessor-dependent  opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              formance of any compiler or library; please let  us  know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              -mtune            Linux:  -mcpu  (this  is  a  deprecated
                                option)

                                Mac OS X: None

       -multibyte-chars

       -no-multibyte-chars

              Determines whether multi-byte characters are supported.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -multibyte-chars  Multi-byte characters are supported.

              Description:

              This option determines whether multi-byte characters  are
              supported.

              Alternate Options:

              None

       -multiple-processes[=n]
                                source files.

              Description:

              This  option  creates multiple processes that can be used
              to compile large numbers of  source  files  at  the  same
              time.  It can improve performance by reducing the time it
              takes to compile source files on the command line.

              This option causes the compiler to  create  one  or  more
              copies  of  itself,  each  in  a  separate process. These
              copies simultaneously compile the source files.

              If n is not specified for this option, the default  value
              is as follows:

              · On Windows OS, the value is based on the setting of the
                NUMBER_OF_PROCESSORS environment variable.

              · On Linux OS and Mac OS X, the value is 2.

              This option applies to compilations, but not  to  linking
              or link-time code generation.

              Alternate Options:

              None

       -no-bss-init

              Tells  the  compiler  to  place  in  the DATA section any
              uninitialized variables and  explicitly  zero-initialized
              variables.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Uninitialized  variables and explicitly
                                zero-initialized variables  are  placed
                                in the BSS section.

              Description:

              This  option tells the compiler to place in the DATA sec-
              tion any uninitialized variables and explicitly zero-ini-
              tialized variables.


              Default:

              OFF

              Description:

              This option prevents the linking of  certain gcc-specific
              libraries.

              This option is not recommended for general use.

              Alternate Options:

              None

       -nodefaultlibs

              Prevents  the compiler from using standard libraries when
              linking.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The standard libraries are linked.

              Description:

              This  option  prevents  the  compiler from using standard
              libraries when linking. It is provided for  GNU  compati-
              bility.

              Alternate Options:

              None

       -nolib-inline

              Disables  inline expansion of standard library or intrin-
              sic functions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              None

       -nostartfiles

              Prevents  the  compiler from using standard startup files
              when linking.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The   compiler  uses  standard  startup
                                files when linking.

              Description:

              This option prevents the  compiler  from  using  standard
              startup files when linking.

              Alternate Options:

              None

       -nostdinc++

              Do  not  search for header files in the standard directo-
              ries for C++, but search the other standard  directories.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF

              Description:

              Do  not  search for header files in the standard directo-
              ries for C++, but search the other standard  directories.

              Alternate Options:

              None

       -nostdlib
                                ing.

              Description:

              This  option  prevents  the  compiler from using standard
              libraries and startup files when linking. It is  provided
              for GNU compatibility.

              Alternate Options:

              None

       -o filename

              Specifies the name for an output file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is  the  name  for the output file. The
                                space before filename is optional.

              Default:

              OFF               The compiler uses the default file name
                                for an output file.

              Description:

              This option specifies the name for an output file as fol-
              lows:

              · If -c is specified, it specifies the name of the gener-
                ated object file.

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

              · If -P is specified, it specifies the name of the gener-
                ated preprocessor file.

              Otherwise,  it specifies the name of the executable file.

              NOTE: If you misspell a compiler  option  beginning  with
              "o",  such  as  -openmp,  -opt-report, etc., the compiler
              interprets the misspelled option as an -ofilename option.
              For   example,   say  you  misspell  "-opt-report"  as  "
              -opt-reprt"; in this case, the  compiler  interprets  the
              misspelled option as "-o pt-reprt", where pt-reprt is the
              output file name.

              n                 Is  the  optimization  level.  Possible
                                values are 1, 2, or 3. On Linux* OS and
                                Mac OS* X systems, you can also specify
                                0.

              Default:

              O2                Optimizes  for code speed. This default
                                may change  depending  on  which  other
                                compiler  options  are  specified.  For
                                details, see below.

              Description:

              This option specifies the code optimization for  applica-
              tions.

              Option            Description

              O (Linux* OS and Mac OS* X)
                                This is the same as specifying O2.

              O0 (Linux OS and Mac OS X)
                                Disables all optimizations.

              This  option may set other options. This is determined by
              the compiler, depending on  which  operating  system  and
              architecture  you are using. The options that are set may
              change from release to release.

              O1                Enables  optimizations  for  speed  and
                                disables   some   optimizations    that
                                increase code size and affect speed. To
                                limit code size, this option:

                                · Enables  global  optimization;   this
                                  includes   data-flow  analysis,  code
                                  motion, strength reduction  and  test
                                  replacement, split-lifetime analysis,
                                  and instruction scheduling.

                                · Disables inlining of some intrinsics.

              This  option may set other options. This is determined by
              the compiler, depending on  which  operating  system  and
              architecture  you are using. The options that are set may
              change from release to release.

              The  O1  option  may improve performance for applications
              with very large code size, many branches,  and  execution
              time not dominated by code within loops.

                                · Intra-file interprocedural  optimiza-
                                  tion, which includes:

                                  · inlining

                                  · constant propagation

                                  · forward substitution

                                  · routine attribute propagation

                                  · variable address-taken analysis

                                  · dead static function elimination

                                  · removal of unreferenced variables

                                · The  following  capabilities for per-
                                  formance gain:

                                  · constant propagation

                                  · copy propagation

                                  · dead-code elimination

                                  · global register allocation

                                  · global instruction  scheduling  and
                                    control speculation

                                  · loop unrolling

                                  · optimized code selection

                                  · partial redundancy elimination

                                  · strength  reduction/induction vari-
                                    able simplification

                                  · variable renaming

                                  · exception handling optimizations

                                  · tail recursions

                                  · peephole optimizations

                                  · structure assignment  lowering  and
                                    optimizations

                                  · dead store elimination

                                and collapsing IF statements.

              This option may set other options. This is determined  by
              the  compiler,  depending  on  which operating system and
              architecture you are using. The options that are set  may
              change from release to release.

              When O3 is used with options -ax or -x (Linux OS) or with
              options  /Qax  or /Qx (Windows OS), the compiler performs
              more aggressive data dependency  analysis  than  for  O2,
              which may result in longer compilation times.

              The O3 optimizations may  not  cause  higher  performance
              unless loop and memory access transformations take place.
              The optimizations may slow down code in some  cases  com-
              pared to O2 optimizations.

              The O3 option is recommended for applications  that  have
              loops  that  heavily  use floating-point calculations and
              process large data sets.

              Many routines in the shared  libraries  are  more  highly
              optimized  for  Intel® microprocessors than for non-Intel
              microprocessors.

              The last O option specified on  the  command  line  takes
              precedence over any others.

              Alternate Options:

       -openmp

              Enables  the parallelizer to generate multi-threaded code
              based on the OpenMP* directives.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No  OpenMP* multi-threaded code is gen-
                                erated by the compiler.

              Description:

              This  option  enables  the   parallelizer   to   generate
              multi-threaded  code based on the OpenMP* directives. The
              code can be executed in parallel on both uniprocessor and
              multiprocessor systems.
              constructs and features that may perform  differently  on
              Intel®  microprocessors  versus non-Intel microprocessors
              include: locks (internal and user  visible),  the  SINGLE
              construct,  barriers  (explicit  and  implicit), parallel
              loop scheduling, reductions,  memory  allocation,  thread
              affinity, and binding.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              Intel and non-Intel  microprocessors  (for  example  SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options  for Intel compilers, including some that are not
              specific to Intel micro-architecture,  are  reserved  for
              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  or  may not optimize to the same
              degree for non-Intel  microprocessors  for  optimizations
              that  are  not  unique  to  Intel microprocessors.  These
              optimizations include Intel® Streaming SIMD Extensions  2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3)  instruction sets and other optimizations.  Intel
              does not guarantee the  availability,  functionality,  or
              effectiveness  of any optimization on microprocessors not
              manufactured by  Intel.   Microprocessor-dependent  opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              linking.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              type              Specifies  the  type of library to use;
                                it implies compatibility  levels.  Cur-
                                rently, the only possible value is:

                                compat         Tells  the  compiler  to
                                               use  the   compatibility
                                               OpenMP* run-time library
                                               (libiomp). This  setting
                                               provides   compatibility
                                               with object  files  cre-
                                               ated   using  Microsoft*
                                               and GNU* compilers.

              Default:

              -openmp-lib=compat
                                The  compiler  uses  the  compatibility
                                OpenMP* run-time library (libiomp).

              Description:

              This  option lets you specify an OpenMP* run-time library
              to use for linking.

              The compatibility OpenMP run-time library  is  compatible
              with  object  files  created  using the Microsoft* OpenMP
              run-time library (vcomp) and GNU OpenMP run-time  library
              (libgomp).

              To use the compatibility OpenMP run-time library, compile
              and link your application  using  the  -openmp-lib=compat
              (Linux)  or  /Qopenmp-lib:compat (Windows) option. To use
              this option, you must also specify one of  the  following
              compiler options:

              · Linux* OS: -openmp, -openmp-profile, or -openmp-stubs

              · Windows*    OS:    /Qopenmp,    /Qopenmp-profile,    or
                /Qopenmp-stubs

              On Windows* systems, the compatibility  OpenMP*  run-time
              library  lets  you  combine OpenMP* object files compiled
              with the Microsoft* C/C++ compiler  with  OpenMP*  object
              files  compiled  with the Intel® C, Intel® C++, or Intel®
              Fortran compilers. The linking phase results in a single,
              coherent copy of the run-time library.

              None

       -openmp-link=library

              Controls  whether the compiler links to static or dynamic
              OpenMP run-time libraries. This is a deprecated option.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              library           Specifies  the  OpenMP  library to use.
                                Possible values are:

                                static         Tells  the  compiler  to
                                               link  to  static  OpenMP
                                               run-time libraries. Note
                                               that    static    OpenMP
                                               libraries   are   depre-
                                               cated.

                                dynamic        Tells  the  compiler  to
                                               link to  dynamic  OpenMP
                                               run-time libraries.

              Default:

              -openmp-link=dynamic
                                The  compiler  links  to dynamic OpenMP
                                run-time libraries. However, if  Linux*
                                OS  option  -static  is  specified, the
                                compiler   links   to   static   OpenMP
                                run-time libraries.

              Description:

              This option controls whether the compiler links to static
              or dynamic OpenMP run-time libraries.

              To link to the static OpenMP run-time library  (RTL)  and
              create  a  purely  static  executable,  you  must specify
              -openmp-link=static   (Linux   and   Mac   OS    X)    or
              /Qopenmp-link:static (Windows). However, we strongly rec-
              ommend you use the default setting,  -openmp-link=dynamic
              (Linux  and Mac OS X) or /Qopenmp-link:dynamic (Windows).

              NOTE: Compiler options  -static-intel  and  -shared-intel
              (Linux  and  Mac  OS  X)  have  no effect on which OpenMP
              run-time library is linked.

              NOTE: On Linux systems,  -openmp-link=dynamic  cannot  be

              Arguments:

              None

              Default:

              OFF               OpenMP applications are not analyzed.

              Description:

              This  option enables analysis of OpenMP* applications. To
              use this  option,  you  must  have  previously  installed
              Intel®  Thread  Profiler,  which  is  one  of  the Intel®
              Threading Analysis Tools.

              This option can adversely affect performance  because  of
              the  additional  profiling  and error checking invoked to
              enable compatibility with the threading tools. Do not use
              this option unless you plan to use the Intel® Thread Pro-
              filer.

              For more information about Intel® Thread  Profiler,  open
              the  page  associated  with  threading  tools at Intel(R)
              Software Development Products.

              Note that this option is no longer needed because  Intel®
              Parallel Amplifier can be used to analyze OpenMP applica-
              tions and OpenMP binaries produced by the compiler.   For
              more  information  about  Intel® Parallel Amplifier, open
              the page associated  with  threading  tools  at  Intel(R)
              Software Development Products.

              Alternate Options:

              None

       -openmp-report[=n]

              Controls  the  OpenMP* parallelizer's level of diagnostic
              messages.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  the level of diagnostic messages to
                                display. Possible values are:

                                0              No  diagnostic  messages
                                               are displayed.

                                               structs,   ORDERED  con-
                                               structs,  ATOMIC  direc-
                                               tives, and so forth.

              Default:

              -openmp-report=1  If  you  do not specify n, the compiler
                                displays diagnostic messages indicating
                                loops,  regions,  and sections success-
                                fully parallelized. If you do not spec-
                                ify the option on the command line, the
                                default is to display no messages.

              Description:

              This option controls the OpenMP* parallelizer's level  of
              diagnostic  messages.  To  use this option, you must also
              specify -openmp (Linux and Mac OS X)  or  /Qopenmp  (Win-
              dows).

              If  this  option  is  specified  on the command line, the
              report is sent to stdout.

              Alternate Options:

              None

       -openmp-stubs

              Enables compilation  of  OpenMP  programs  in  sequential
              mode.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The library of OpenMP function stubs is
                                not linked.

              Description:

              This  option  enables  compilation  of OpenMP programs in
              sequential mode. The OpenMP directives are ignored and  a
              stub OpenMP library is linked.

              Alternate Options:

              None
                                               ing   pragmas   (#pragma
                                               intel_omp_taskq      and
                                               #pragma intel_omp_task).
                                               When this value is spec-
                                               ified, OpenMP 3.0  task-
                                               ing pragmas are ignored;
                                               if they  are  specified,
                                               warnings are issued.

                                omp            Tells  the  compiler  to
                                               accept OpenMP 3.0  task-
                                               ing   pragmas   (#pragma
                                               omp_task).   When   this
                                               value    is   specified,
                                               Intel taskqueuing  prag-
                                               mas are ignored; if they
                                               are specified,  warnings
                                               are issued.

              Default:

              -openmp-task=omp  The compiler accepts OpenMP 3.0 tasking
                                pragmas.

              Description:

              The option lets you choose an OpenMP tasking model.

              To use this option, you must also specify option  -openmp
              (Linux and Mac OS X) or /Qopenmp (Windows).

              Alternate Options:

              None

       -openmp-threadprivate=type (L*X only)

              Lets you specify an OpenMP* threadprivate implementation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              type              Specifies  the  type  of  threadprivate
                                implementation. Possible values are:

                                legacy         Tells  the  compiler  to
                                               use  the  legacy OpenMP*
                                               threadprivate  implemen-
                                               tation  used in the pre-
                                               vious  releases  of  the
                                               Intel®   compiler.  This
                                               attribute  on  a   given
                                               platform  also  apply to
                                               the threadprivate imple-
                                               mentation.  This setting
                                               provides   compatibility
                                               with  the implementation
                                               provided     by      the
                                               Microsoft* and GNU* com-
                                               pilers.

              Default:

              -openmp-threadprivate=legacy
                                The compiler uses  the  legacy  OpenMP*
                                threadprivate  implementation  used  in
                                the previous  releases  of  the  Intel®
                                compiler.

              Description:

              This  option  lets  you  specify an OpenMP* threadprivate
              implementation.

              The legacy OpenMP run-time library is not compatible with
              object files created using OpenMP run-time libraries sup-
              ported in other compilers.

              To use this option, you must also specify one of the fol-
              lowing compiler options:

              · Linux OS: -openmp, -openmp-profile, or -openmp-stubs

              · Windows     OS:    /Qopenmp,    /Qopenmp-profile,    or
                /Qopenmp-stubs

              The value specified for this option is independent of the
              value used for option -openmp-lib (Linux) or /Qopenmp-lib
              (Windows).

              NOTE: On Mac OS* X systems, legacy is the  only  type  of
              threadprivate supported.  Option -openmp-threadprivate is
              not recognized by the compiler.

              Alternate Options:

              None

       -opt-args-in-reg[=keyword]

              Determines whether calls to  routines  are  optimized  by
              passing parameters  in registers instead of on the stack.

                                seen           Causes parameters to  be
                                               passed in registers when
                                               they are passed to  rou-
                                               tines  whose  definition
                                               can be seen in the  same
                                               compilation unit.

                                all            Causes  parameters to be
                                               passed   in   registers,
                                               whether  they are passed
                                               to routines whose  defi-
                                               nition  can  be  seen in
                                               the   same   compilation
                                               unit, or not. This value
                                               is  only  available   on
                                               Linux* systems.

              Default:

              -opt-args-in-regs=seen
                                Parameters are passed in registers when
                                they are passed to routines whose defi-
                                nition  is seen in the same compilation
                                unit

              Description:

              This option determines  whether  calls  to  routines  are
              optimized  by  passing parameters in registers instead of
              on the stack. It also indicates the conditions  when  the
              optimization will be performed.

              This  option  can  improve  performance  for  Application
              Binary Interfaces (ABIs) that require  parameters  to  be
              passed  in  memory  and  compiled without interprocedural
              optimization (IPO).

              Note that on Linux* systems, if all is specified, a small
              overhead  may be paid when calling 'unseen' routines that
              have not been compiled with  the  same  option.  This  is
              because  the  call  will  need to go through a 'thunk' to
              ensure that parameters are placed back on the stack where
              the callee expects them.

              Alternate Options:

              None

       -opt-block-factor=n

              Lets you specify a loop blocking factor.


              This option lets you specify a loop blocking factor.

              Alternate Options:

              None

       -opt-calloc (L*X only)

       -no-opt-calloc (L*X only)

              Tells    the   compiler   to   substitute   a   call   to
              _intel_fast_calloc() for a call to calloc().

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-opt-calloc    The compiler does not substitute a call
                                to _intel_fast_calloc() for a  call  to
                                calloc().

              Description:

              This  option  tells  the  compiler  to  substitute a call
              to_intel_fast_calloc() for a call to calloc().

              This option may increase the performance of  long-running
              programs  that use calloc() frequently. It is recommended
              for  these  programs   over   combinations   of   options
              -inline-calloc   and-opt-malloc-options=3   because  this
              option causes less memory fragmentation.

              NOTE: Many routines in the LIBIRC library are more highly
              optimized  for  Intel® microprocessors than for non-Intel
              microprocessors.

              Alternate Options:

              None

       -opt-class-analysis

       -no-opt-class-analysis

              Determines whether C++  class  hierarchy  information  is
              used to analyze and resolve C++ virtual function calls at
              compile time.
              Description:

              This option determines whether C++ class hierarchy infor-
              mation  is  used to analyze and resolve C++ virtual func-
              tion calls at compile time. The option is  turned  on  by
              default  with the -ipo compiler option, enabling improved
              C++ optimization. If a C++ application contains non-stan-
              dard C++ constructs, such as pointer down-casting, it may
              result in different behaviors.

              Alternate Options:

              None

       -opt-jump-tables=keyword

       -no-opt-jump-tables

              Enables or disables generation of jump tables for  switch
              statements.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Is the instruction for generating  jump
                                tables. Possible values are:

                                never          Tells  the  compiler  to
                                               never   generate    jump
                                               tables.    All    switch
                                               statements  are   imple-
                                               mented   as   chains  of
                                               if-then-elses.  This  is
                                               the  same  as specifying
                                               -no-opt-jump-tables
                                               (Linux  and  Mac  OS) or
                                               /Qopt-jump-tables- (Win-
                                               dows).

                                default        The     compiler    uses
                                               default  heuristics   to
                                               determine when to gener-
                                               ate jump tables.

                                large          Tells  the  compiler  to
                                               generate  jump tables up
                                               to a certain pre-defined
                                               size (64K entries).

                                n              Must   be   an  integer.
                                               Tells  the  compiler  to

              improve performance for programs with large switch state-
              ments.

              Alternate Options:

              None

       -opt-malloc-options=n

              Lets you specify an alternate algorithm for malloc().

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Specifies the algorithm to use for mal-
                                loc(). Possible values are:

                                0              Tells  the  compiler  to
                                               use  the  default  algo-
                                               rithm for malloc(). This
                                               is the default.

                                1              Causes   the   following
                                               adjustments to the  mal-
                                               loc()         algorithm:
                                               M_MMAP_MAX=2         and
                                               M_TRIM_THRESH-
                                               OLD=0x10000000.

                                2              Causes   the   following
                                               adjustments  to the mal-
                                               loc()         algorithm:
                                               M_MMAP_MAX=2         and
                                               M_TRIM_THRESH-
                                               OLD=0x40000000.

                                3              Causes   the   following
                                               adjustments to the  mal-
                                               loc()         algorithm:
                                               M_MMAP_MAX=0         and
                                               M_TRIM_THRESHOLD=-1.

                                4              Causes   the   following
                                               adjustments to the  mal-
                                               loc()         algorithm:
                                               M_MMAP_MAX=0,
                                               M_TRIM_THRESHOLD=-1,
                                               M_TOP_PAD=4096.

              Default:

              malloc()  for dynamic memory allocation. This may improve
              speed.

              Alternate Options:

              None

       -opt-matmul (L*X only)

       -no-opt-matmul (L*X only)

              Enables or disables a compiler-generated Matrix  Multiply
              (matmul)
                     library call.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-opt-matmul    The matmul  library  call  optimization
                                does  not  occur  unless this option is
                                enabled  or  certain   other   compiler
                                options are specified (see below).

              Description:

              This  option  enables  or  disables  a compiler-generated
              Matrix Multiply (MATMUL) library call.

              Options -opt-matmul and /Qopt-matmul tell the compiler to
              identify  matrix  multiplication  loop nests (if any) and
              replace them with a matmul library call for improved per-
              formance.   The  resulting  executable may get additional
              performance  gain  on  Intel®  microprocessors  than   on
              non-Intel microprocessors.

              This option is enabled by default if options O3 and -par-
              allel (Linux* OS) or /Qparallel (Windows*) are specified.
              To  disable  this optimization, specify -no-opt-matmul or
              /Qopt-matmul-.

              This option has no effect unless option O2 or  higher  is
              set.

              NOTE: Many routines in the MATMUL library are more highly
              optimized for Intel® microprocessors than  for  non-Intel
              microprocessors.


              n                 Is the level of memory layout transfor-
                                mations. Possible values are:

                                0              Disables  memory  layout
                                               transformations. This is
                                               the same  as  specifying
                                               -no-opt-mem-layout-trans
                                               (Linux* OS and  Mac  OS*
                                               X)   or   /Qopt-mem-lay-
                                               out-trans-     (Windows*
                                               OS).

                                1              Enables   basic   memory
                                               layout  transformations.

                                2              Enables more memory lay-
                                               out     transformations.
                                               This   is  the  same  as
                                               specifying -opt-mem-lay-
                                               out-trans (Linux* OS and
                                               Mac    OS*     X)     or
                                               /Qopt-mem-layout-trans
                                               (Windows  OS*)  with  no
                                               argument.

                                3              Enables  aggressive mem-
                                               ory  layout  transforma-
                                               tions.  You  should only
                                               use this setting if your
                                               system has more than 4GB
                                               of physical  memory  per
                                               core.

              Default:

              -opt-mem-layout-trans=2
                                The  compiler  performs moderate memory
                                layout transformations.

              Description:

              This option controls the level of memory layout transfor-
              mations  performed  by  the  compiler.  This  option  can
              improve cache reuse and cache locality.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  include  or utilize options that
              ucts offer optimizations for both Intel and Intel-compat-
              ible   microprocessors,  depending  on  the  options  you
              select, your code and other factors, you likely will  get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development tools may or may not  optimize  to  the  same
              degree  for  non-Intel  microprocessors for optimizations
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-
              formance  of  any compiler or library; please let us know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -opt-multi-version-aggressive

       -no-opt-multi-version-aggressive

              Tells the compiler to use aggressive multi-versioning  to
              check for pointer aliasing and scalar replacement.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-opt-multi-version-aggressive
              Alternate Options:

              None

       -opt-prefetch[=n]

       -no-opt-prefetch

              Enables or disables  prefetch insertion optimization.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the level of detail in  the  report.
                                Possible values are:

                                0              Disables        software
                                               prefetching. This is the
                                               same    as    specifying
                                               -no-opt-prefetch  (Linux
                                               and   Mac   OS   X)   or
                                               /Qopt-prefetch-    (Win-
                                               dows).

                                1 to 4         Enables different levels
                                               of software prefetching.
                                               If  you do not specify a
                                               value for n, the default
                                               is  2.  Use lower values
                                               to reduce the amount  of
                                               prefetching.

              Default:

              -no-opt-prefetch  Prefetch insertion optimization is dis-
                                abled.

              Description:

              This option enables or disables prefetch insertion  opti-
              mization.  The  goal  of  prefetching  is to reduce cache
              misses by providing hints to  the  processor  about  when
              data should be loaded into the cache.

              This  option enables prefetching when higher optimization
              levels are specified.

       -opt-ra-region-strategy[=keyword]

              Selects the method that the register  allocator  uses  to
              partition each routine into regions.

                                trace          Partitions each  routine
                                               into   one   region  per
                                               trace.

                                region         Partitions each  routine
                                               into   one   region  per
                                               loop.

                                default        The compiler  determines
                                               which method is used for
                                               partitioning.

              Default:

              -opt-ra-region-strategy=default
                                The compiler determines which method is
                                used for partitioning. This is also the
                                default if keyword is not specified.

              Description:

              This option selects the method that the register  alloca-
              tor uses to partition each routine into regions.

              When  setting default is in effect, the compiler attempts
              to optimize the tradeoff between compile-time performance
              and generated code performance.

              This  option  is  only  relevant  when  optimizations are
              enabled (O1 or higher).

              Alternate Options:

              None

       -opt-report [n]

              Tells the compiler to generate an optimization report  to
              stderr.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the level of detail in  the  report.
                                On  Linux  OS  and  Mac OS X systems, a
                                space must appear before the n.  Possi-
                                ble values are:

                                0              Tells  the  compiler  to
                                               generate no optimization
                                               the   maximum  level  of
                                               detail.

              Default:

              -opt-report 2     If you do not specify n,  the  compiler
                                generates  a report with medium detail.
                                If you do not specify the option on the
                                command  line,  the  compiler  does not
                                generate an optimization report.

              Description:

              This option tells the compiler to generate  an  optimiza-
              tion report to stderr.

              Alternate Options:

              None

       -opt-report-file=filename

              Specifies the name for an optimization report.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is   the   name  for  the  optimization
                                report.

              Default:

              OFF               No optimization report is generated.

              Description:

              This  option  specifies  the  name  for  an  optimization
              report.  If you use this option, you do not have to spec-
              ify -opt-report (Linux and  Mac  OS  X)  or  /Qopt-report
              (Windows).

              Alternate Options:

              None

       -opt-report-help

              Displays the optimizer phases available for report gener-
              ation.

              Architectures: IA-32, Intel® 64 architectures
              performed.

              Alternate Options:

              None

       -opt-report-phase=phase

              Specifies  an  optimizer  phase  to use when optimization
              reports are generated.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              phase             Is  the  phase to generate reports for.
                                Some of the possible values are:

                                ipo            The      Interprocedural
                                               Optimizer phase

                                hlo            The High Level Optimizer
                                               phase

                                hpo            The   High   Performance
                                               Optimizer phase

                                ilo            The   Intermediate  Lan-
                                               guage  Scalar  Optimizer
                                               phase

                                pgo            The Profile Guided Opti-
                                               mization phase

                                all            All optimizer phases

              Default:

              OFF               No optimization reports are  generated.

              Description:

              This  option  specifies  an  optimizer  phase to use when
              optimization reports are generated. To use  this  option,
              you must also specify -opt-report (Linux and Mac OS X) or
              /Qopt-report (Windows).

              This option can be used multiple times on the  same  com-
              mand  line  to  generate  reports  for multiple optimizer
              phases.

              When one of the logical names  for  optimizer  phases  is
              containing specified text.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              string            Is the text (string) to look for.

              Default:

              OFF               No optimization reports are  generated.

              Description:

              This option tells the compiler to generate reports on the
              routines containing specified text as part of their name.

              Alternate Options:

              None

       -opt-streaming-stores keyword

              Enables  generation of streaming stores for optimization.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Specifies  whether streaming stores are
                                generated. Possible values are:

                                always         Enables  generation   of
                                               streaming   stores   for
                                               optimization.  The  com-
                                               piler   optimizes  under
                                               the assumption that  the
                                               application   is  memory
                                               bound.

                                never          Disables  generation  of
                                               streaming   stores   for
                                               optimization.     Normal
                                               stores are performed.

                                auto           Lets the compiler decide
                                               which  instructions   to
                                               use.

              Default:

              -opt-streaming-stores auto

              None

       -opt-subscript-in-range

       -no-opt-subscript-in-range

              Determines whether the compiler assumes that there are no
              "large"  integers  being  used  or  being computed inside
              loops.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-opt-subscript-in-range
                                The compiler assumes  there are "large"
                                integers  being  used or being computed
                                within loops.

              Description:

              This option determines whether the compiler assumes  that
              there  are  no  "large" integers being used or being com-
              puted inside loops.

              If you specify -opt-subscript-in-range (Linux and Mac  OS
              X)  or  /Qopt-subscript-in-range  (Windows), the compiler
              assumes that there are no "large" integers being used  or
              being  computed  inside loops. A "large" integer is typi-
              cally > 231. This feature can enable more loop  transfor-
              mations.

              Alternate Options:

              None

       -Os

              Enables  optimizations that do not increase code size and
              produces smaller code size than O2.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              that  reduce  code size over transformations that produce
              maximum performance.

              Alternate Options:

              None

       -p

              Compiles and links for function profiling with  gprof(1).

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Files are compiled and  linked  without
                                profiling.

              Description:

              This  option  compiles  and  links for function profiling
              with gprof(1).

              Alternate Options:

              Linux and Mac OS X:   -qp (this is a deprecated option)

       -P

              Tells the compiler to stop the  compilation  process  and
              write the results to a file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Normal compilation is performed.

              Description:

              This option tells the compiler to  stop  the  compilation
              process  after  C  or  C++ source files have been prepro-
              cessed and write the results to files named according  to
              the compiler's default file-naming conventions.

       -parallel

              Tells the  auto-parallelizer  to  generate  multithreaded
              code for loops that can be safely executed in parallel.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Multithreaded code is not generated for
                                loops  that  can  be safely executed in
                                parallel.

              Description:

              This option tells the auto-parallelizer to generate  mul-
              tithreaded  code for loops that can be safely executed in
              parallel.

              To use this option, you must also specify  option  O2  or
              O3.

              On  Linux  and  Windows  systems, this option sets option
              -opt-matmul (Linux*) or /Qopt-matmul (Windows*) if option
              O3 is also specified.

              NOTE:  On  Mac  OS*  X systems, when you enable automatic
              parallelization, you must also set the  DYLD_LIBRARY_PATH
              environment  variable  within  Xcode  or an error will be
              displayed.

              NOTE: Using this option enables parallelization for  both
              Intel®  microprocessors  and  non-Intel  microprocessors.
              The resulting executable may get  additional  performance
              gain on Intel microprocessors than on non-Intel micropro-
              cessors. The parallelization can also be affected by cer-
              tain  options, such as /arch or /Qx (Windows) or -m or -x
              (Linux and Mac OS X).

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  include  or utilize options that
              optimize for instruction sets that are available in  both
              Intel  and  non-Intel  microprocessors  (for example SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development tools may or may not  optimize  to  the  same
              degree  for  non-Intel  microprocessors for optimizations
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-
              formance  of  any compiler or library; please let us know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -parallel-source-info[=n]

       -no-parallel-source-info

              Enables or disables source location emission when OpenMP*
              or auto-parallelization code is generated.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the level of source  location  emis-
                                sion. Possible values are:

                                0              Disables the emission of
                                               source location informa-
                                               tion   when   OpenMP  or
                                               auto-parallelization
                                               code  is generated. This
                                               allel-source-info  (Win-
                                               dows*)  with no keyword.

                                2              Tells  the  compiler  to
                                               emit path, file, routine
                                               name, and line  informa-
                                               tion.

              Default:

              -parallel-source-info=1
                                When  OpenMP*  or  auto-parallelization
                                code is generated, the routine name and
                                line information is emitted.

              Description:

              This  option enables or disables source location emission
              when OpenMP or auto-parallelization  code  is  generated.
              It also lets you set the level of emission.

              Alternate Options:

              None

       -par-affinity=[modifier,...]type[,permute][,offset] (L*X only)

              Specifies thread affinity.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              modifier          Is  one of the following values: granu-
                                larity={fine|thread|core}, [no]respect,
                                [no]verbose,     [no]warnings,     pro-
                                clist=proc_list.  The default is granu-
                                larity=core,  respect,  and  noverbose.
                                For information on value proclist,  see
                                Thread  Affinity  Interface  in OpenMP*
                                Support.

              type              Indicates  the  thread  affinity.  This
                                argument is required and must be one of
                                the  following  values:  compact,  dis-
                                abled,  explicit,  none, scatter, logi-
                                cal, physical.  The  default  is  none.
                                Values  logical and physical are depre-
                                cated. Use compact and scatter, respec-
                                tively, with no permute value.

              permute           Is  a  positive integer. You cannot use
              Description:

              This  option  specifies  thread  affinity,  which   binds
              threads  to  physical  processing  units. It has the same
              effect as environment variable KMP_AFFINITY.

              This option overrides the environment variable when  both
              are specified.

              This option only has an effect if the following is true:

              · Linux*  OS:  You  have  specified  option  -parallel or
                -openmp (or both).  Windows*  OS:  You  have  specified
                option /Qparallel or /Qopenmp (or both).

              · You are compiling the main program.

              NOTE: This option may behave differently on Intel® micro-
              processors than on non-Intel microprocessors.

              Alternate Options:

              None

       -par-num-threads=n

              Specifies the number of threads  to  use  in  a  parallel
              region.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the number of  threads  to  use.  It
                                must be a positive integer.

              Default:

              OFF               The  number of threads to use is deter-
                                mined by the run-time environment.

              Description:

              This option specifies the number of threads to use  in  a
              parallel  region.  It  has the same effect as environment
              variable OMP_NUM_THREADS.

              This option overrides the environment variable when  both
              are specified.

              This option only has an effect if the following is true:


              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  a  value  denoting which diagnostic
                                messages  to  report.  Possible  values
                                are:

                                0              Tells   the  auto-paral-
                                               lelizer  to  report   no
                                               diagnostic  information.

                                1              Tells  the   auto-paral-
                                               lelizer  to report diag-
                                               nostic   messages    for
                                               loops       successfully
                                               auto-parallelized.   The
                                               compiler  also  issues a
                                               "LOOP AUTO-PARALLELIZED"
                                               message   for   parallel
                                               loops.

                                2              Tells  the   auto-paral-
                                               lelizer  to report diag-
                                               nostic   messages    for
                                               loops  successfully  and
                                               unsuccessfully auto-par-
                                               allelized.

                                3              Tells   the  auto-paral-
                                               lelizer  to  report  the
                                               same diagnostic messages
                                               specified  by   2   plus
                                               additional   information
                                               about  any   proven   or
                                               assumed     dependencies
                                               inhibiting   auto-paral-
                                               lelization  (reasons for
                                               not parallelizing).

              Default:

              -par-report1      If you do not specify n,  the  compiler
                                displays  diagnostic messages for loops
                                successfully auto-parallelized. If  you
                                do  not  specify the option on the com-
                                mand line, the default is to display no
                                messages.

              Description:

       -no-par-runtime-control

              Generates  code to perform run-time checks for loops that
              have symbolic loop bounds.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  a   a  value  denoting what kind of
                                runtime checking to  perform.  Possible
                                values are:

                                0              Performs    no   runtime
                                               check based on auto-par-
                                               allelization.   This  is
                                               the same  as  specifying
                                               -no-par-runtime-control
                                               (Linux* and Mac  OS*  X)
                                               or    /Qpar-runtime-con-
                                               trol- (Windows*).

                                1              Generates runtime  check
                                               code  under conservative
                                               mode.   This   is    the
                                               default  if  you  do not
                                               specify n.

                                2              Generates runtime  check
                                               code   under   heuristic
                                               mode.

                                3              Generates runtime  check
                                               code   under  aggressive
                                               mode.

              Default:

              -no-par-runtime-control
                                The compiler  uses  default  heuristics
                                when checking loops.

              Description:

              This option generates code to perform run-time checks for
              loops that have symbolic loop bounds.

              If the granularity of a loop is greater than  the  paral-
              lelization threshold, the loop will be executed in paral-
              lel.

              If you do not specify this option, the compiler  may  not
              method for loop iterations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Specifies the scheduling  algorithm  or
                                tuning method. Possible values are:

                                auto           Lets   the  compiler  or
                                               run-time  system  deter-
                                               mine    the   scheduling
                                               algorithm.

                                static         Divides iterations  into
                                               contiguous pieces.

                                static-balanced
                                               Divides  iterations into
                                               even-sized chunks.

                                static-steal   Divides iterations  into
                                               even-sized  chunks,  but
                                               allows threads to  steal
                                               parts   of  chunks  from
                                               neighboring threads.

                                dynamic        Gets a set of iterations
                                               dynamically.

                                guided         Specifies a minimum num-
                                               ber of iterations.

                                guided-analytical
                                               Divides  iterations   by
                                               using        exponential
                                               distribution or  dynamic
                                               distribution.

                                runtime        Defers   the  scheduling
                                               decision until run time.

              n                 Is  the size of the chunk or the number
                                of iterations for each chunk. This set-
                                ting  can only be specified for static,
                                dynamic, and guided. For more  informa-
                                tion, see the descriptions of each key-
                                word below.

              Default:

              static-balanced   Iterations are divided into  even-sized

              Option            Description

              -par-schedule-auto or /Qpar-schedule-auto
                                Lets the compiler  or  run-time  system
                                determine the scheduling algorithm. Any
                                possible mapping may occur  for  itera-
                                tions to threads in the team.

              -par-schedule-static or /Qpar-schedule-static
                                Divides   iterations   into  contiguous
                                pieces (chunks) of size n.  The  chunks
                                are  assigned to threads in the team in
                                a round-robin fashion in the  order  of
                                the  thread number.  Note that the last
                                chunk to be assigned may have a smaller
                                number of iterations.

              If no n is specified, the iteration space is divided into
              chunks that are approximately
                                equal  in  size,  and  each  thread  is
                                assigned at most one chunk.

              -par-schedule-static-balanced       or       /Qpar-sched-
              ule-static-balanced
                                Divides  iterations   into   even-sized
                                chunks.  The chunks are assigned to the
                                threads in the team  in  a  round-robin
                                fashion in the order of the thread num-
                                ber.

              -par-schedule-static-steal or /Qpar-schedule-static-steal
                                Divides  iterations   into   even-sized
                                chunks, but when a thread completes its
                                chunk, it can  steal  parts  of  chunks
                                assigned to neighboring threads.

              Each thread keeps track
                                of  L  and U, which represent the lower
                                and upper bounds of its chunks  respec-
                                tively.  Iterations are executed start-
                                ing from the lower bound, and  simulta-
                                neously,  L is updated to represent the
                                new lower bound.

              -par-schedule-dynamic or /Qpar-schedule-dynamic
                                Can be used to get a set of  iterations
                                dynamically.   Assigns   iterations  to
                                threads  in  chunks  as   the   threads
                                request  them.  The thread executes the
                                chunk  of  iterations,  then   requests
                                another  chunk,  until no chunks remain
                                request  them.  The thread executes the
                                chunk  of  iterations,  then   requests
                                another  chunk,  until no chunks remain
                                to be assigned.

              For a chunk of size 1, the size of each chunk is  propor-
              tional to the number of unassigned
                                iterations divided  by  the  number  of
                                threads, decreasing to 1.

              For an n with value
                                k  (greater  than  1), the size of each
                                chunk is determined  in  the  same  way
                                with the restriction that the chunks do
                                not contain  fewer  than  k  iterations
                                (except   for  the  last  chunk  to  be
                                assigned, which may have fewer  than  k
                                iterations).  If no n is specified, the
                                default is 1.

              -par-schedule-guided-analytical      or      /Qpar-sched-
              ule-guided-analytical
                                Divides iterations by using exponential
                                distribution  or  dynamic distribution.
                                The method depends on  run-time  imple-
                                mentation.  Loop  bounds are calculated
                                with faster synchronization and  chunks
                                are  dynamically dispatched at run time
                                by threads in the team.

              -par-schedule-runtime or /Qpar-schedule-runtime
                                Defers the  scheduling  decision  until
                                run  time. The scheduling algorithm and
                                chunk size are then taken from the set-
                                ting of environment variable OMP_SCHED-
                                ULE.

              NOTE: This option may behave differently on Intel® micro-
              processors than on non-Intel microprocessors.

              Alternate Options:

              None

       -par-threshold[n]

              Sets a threshold for the auto-parallelization of loops.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

                                almost certain.

                                The  intermediate 1 to 99 values repre-
                                sent  the  percentage  probability  for
                                profitable  speed-up. For example, n=50
                                directs  the  compiler  to  parallelize
                                only  if  there is a 50% probability of
                                the code speeding  up  if  executed  in
                                parallel.

              Default:

              -par-threshold100 Loops  get  auto-parallelized  only  if
                                profitable parallel execution is almost
                                certain.  This  is  also the default if
                                you do not specify n.

              Description:

              This option sets a threshold for the auto-parallelization
              of loops based on the probability of profitable execution
              of the loop in parallel. To use  this  option,  you  must
              also specify -parallel (Linux and Mac OS X) or /Qparallel
              (Windows).

              This option is useful for loops  whose  computation  work
              volume  cannot be determined at compile-time. The thresh-
              old is usually relevant  when  the  loop  trip  count  is
              unknown at compile-time.

              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.

              NOTE: This option may behave differently on Intel® micro-
              processors than on non-Intel microprocessors.

              Alternate Options:

              None

       -pcn

              Enables  control of floating-point significand precision.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  the floating-point significand pre-
                                cision. Possible values are:

              -pc80             On Linux* and Mac OS*  X  systems,  the
                                floating-point  significand  is rounded
                                to 64 bits.

              Description:

              This option enables control of floating-point significand
              precision.

              Some floating-point algorithms are sensitive to the accu-
              racy 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 this option.

              Note  that  a  change of the default precision control or
              rounding mode, for example, by using the -pc32 (Linux and
              Mac OS X) or /Qpc32 (Windows) option or by user interven-
              tion, may affect the results  returned  by  some  of  the
              mathematical functions.

              Alternate Options:

              None

       -pch

              Tells  the compiler to use appropriate precompiled header
              files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler  does  not  create or use
                                precompiled headers unless you tell  it
                                to do so.

              Description:

              This option tells the compiler to use appropriate precom-
              piled header (PCH) files. If none are available, they are
              created  as sourcefile.pchi. This option is supported for
              multiple source files.

              The -pch option will use PCH  files  created  from  other
              sources  if  the headers files are the same. For example,

       -pch-create filename

              Tells the compiler to create a precompiled header file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is  the name for the precompiled header
                                file. A space must  appear  before  the
                                file name. It can include a path.

              Default:

              OFF               The  compiler  does  not  create or use
                                precompiled headers unless you tell  it
                                to do so.

              Description:

              This  option  tells  the compiler to create a precompiled
              header (PCH) file. It is supported only for single source
              file compilations.

              Note  that  the  .pchi  extension  is  not  automatically
              appended to the file name.

              This option cannot be used in the same compilation as the
              -pch-use option.

              Alternate Options:

              Linux and Mac OS X: None

              Windows: /Yc

       -pch-dir dir

              Tells  the  compiler  the location for precompiled header
              files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is  the  path  for  precompiled  header
                                files. The path must exist.

              Default:

              OFF               The compiler does  not  create  or  use
              User's Guide.

              Alternate Options:

              None

       -pch-use filename

              Tells the compiler to use a precompiled header file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is  the  name of the precompiled header
                                file to use. A space must appear before
                                the file name. It can include a path.

              Default:

              OFF               The  compiler  does  not  create or use
                                precompiled headers unless you tell  it
                                to do so.

              Description:

              This  option  tells  the  compiler  to  use a precompiled
              header (PCH) file.

              It is supported for multiple source files when all source
              files use the same .pchi file.

              This option cannot be used in the same compilation as the
              -pch-create option.

              To learn how to optimize  compile  times  using  the  PCH
              options,  see  "Using  Precompiled  Header  Files" in the
              User's Guide.

              Alternate Options:

              Linux and Mac OS X: None

              Windows: /Yu

       -pie (L*X only)

              Produces a position-independent executable on  processors
              that support it.

              Architectures: IA-32, Intel® 64 architectures

              processors that support it. It is both a compiler  option
              and a linker option. When used as a compiler option, this
              option ensures the linker sets up run-time libraries cor-
              rectly.

              Normally  the object linked has been compiled with option
              -fpie.

              When you specify -pie, it is recommended that you specify
              the same options that were used during compilation of the
              object.

              Alternate Options:

              None

       -pragma-optimization-level=interpretation

              Specifies which interpretation of the  optimization_level
              pragma should be used if no prefix is specified.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              interpretation    Compiler-specific   interpretation   of
                                optimization_level   pragma.   Possible
                                values are:

                                Intel          Specify the Intel inter-
                                               pretation.

                                GCC            Specify  the  GCC inter-
                                               pretation.

              Default:

              -pragma-optimization-level=Intel
                                Use the  Intel  interpretation  of  the
                                optimization_level pragma.

              Description:

              Specifies  which interpretation of the optimization_level
              pragma should be used if no prefix is specified.

              Alternate Options:

              None

       -prec-div


              Description:

              This option improves precision of floating-point divides.
              It has a slight impact on speed.

              With  some  optimizations,  such  as  -msse2  (Linux)  or
              /arch:SSE2  (Windows),  the  compiler  may  change float-
              ing-point division computations  into  multiplication  by
              the  reciprocal  of  the denominator. For example, A/B is
              computed as A * (1/B) to improve the speed of the  compu-
              tation.

              However, sometimes the value produced by this transforma-
              tion is not as accurate as full IEEE division. When it is
              important  to  have fully precise IEEE division, use this
              option to disable the  floating-point  division-to-multi-
              plication optimization. The result is more accurate, with
              some loss of performance.

              If you specify -no-prec-div  (Linux  and  Mac  OS  X)  or
              /Qprec-div- (Windows), it enables optimizations that give
              slightly less precise results than full IEEE division.

              Alternate Options:

              None

       -prec-sqrt

       -no-prec-sqrt

              Improves precision of square root implementations.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-prec-sqrt     The compiler uses  a  faster  but  less
                                precise  implementation of square root.

                                However, the default is  -prec-sqrt  if
                                any of the following options are speci-
                                fied: -O0, -mp, or -mp1 on  Linux*  and
                                Mac OS* X systems.

              Description:

              Prints information about where system libraries should be
              found.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No  information  is  printed unless the
                                option is specified.

              Description:

              This  option  prints  information  about   where   system
              libraries  should be found, but no compilation occurs. It
              is provided for compatibility with gcc.

              Alternate Options:

              None

       -prof-data-order (L*X only)

       -no-prof-data-order (L*X only)

              Enables or disables data ordering if  profiling  informa-
              tion is enabled.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-prof-data-order
                                Data ordering is disabled.

              Description:

              This option enables or disables data ordering if  profil-
              ing  information  is enabled. It controls the use of pro-
              filing information to order static program data items.

              For this option to be effective, you must do the  follow-
              ing:

              · For   instrumentation  compilation,  you  must  specify

              Specifies  a  directory  for profiling information output
              files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the name of the directory.

              Default:

              OFF               Profiling  output  files  are placed in
                                the directory where the program is com-
                                piled.

              Description:

              This  option specifies a directory for profiling informa-
              tion output files (*.dyn and *.dpi). The specified direc-
              tory must already exist.

              You  should  specify this option using the same directory
              name for both instrumentation and feedback  compilations.
              If  you  move the .dyn files, you need to specify the new
              path.

              Option /Qprof-dir is equivalent to option  /Qcov-dir.  If
              you  specify  both  options, the last option specified on
              the command line takes precedence.

              Alternate Options:

              None

       -prof-file filename

              Specifies an alternate file name for the  profiling  sum-
              mary files.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is the name of  the  profiling  summary
                                file.

              Default:

              OFF               The  profiling  summary  files have the
                                file name pgopti.*

              If you specify this option with option  -prof-use  (Linux
              and Mac OS X) or /Qprof-use (Windows), the .dpi file will
              be named filename.dpi instead of pgopti.dpi.

              Option /Qprof-file is equivalent to option /Qcov-file. If
              you  specify  both  options, the last option specified on
              the command line takes precedence.

              Alternate Options:

              None

       -prof-func-order (L*X only)

       -no-prof-func-order (L*X only)

              Enables or disables function ordering if profiling infor-
              mation is enabled.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-prof-func-order
                                Function ordering is disabled.

              Description:

              This option enables or disables function ordering if pro-
              filing information is enabled.

              For  this option to be effective, you must do the follow-
              ing:

              · For  instrumentation  compilation,  you  must   specify
                -prof-gen=srcpos  (Linux)  or  /Qprof-gen:srcpos  (Win-
                dows).

              · For feedback compilation, you  must  specify  -prof-use
                (Linux)  or  /Qprof-use  (Windows).  You  must  not use
                multi-file optimization by specifying options  such  as
                option  -ipo  (Linux)  or  /Qipo  (Windows),  or option
                -ipo-c (Linux) or /Qipo-c (Windows).

              If you enable profiling information by specifying  option
              -prof-use     (Linux)     or     /Qprof-use    (Windows),
              -prof-func-groups (Linux)  and  /Qprof-func-groups  (Win-
              dows)  are  set  and function grouping is enabled.   How-

       -prof-gen[=keyword]

       -no-prof-gen

              Produces  an instrumented object file that can be used in
              profile-guided optimization.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Specifies  details for the instrumented
                                file. Possible values are:

                                default        Produces an instrumented
                                               object file. This is the
                                               same    as    specifying
                                               -prof-gen   (Linux*  and
                                               Mac OS* X) or /Qprof-gen
                                               (Windows*)  with no key-
                                               word.

                                srcpos         Produces an instrumented
                                               object     file     that
                                               includes  extra   source
                                               position    information.
                                               This option is the  same
                                               as   option   -prof-genx
                                               (Linux* and Mac  OS*  X)
                                               or   /Qprof-genx   (Win-
                                               dows*), which are depre-
                                               cated.

                                globdata       Produces an instrumented
                                               object     file     that
                                               includes information for
                                               global data layout.

              Default:

              -no-prof-gen      Profile generation is disabled.

              Description:

              This option produces an instrumented object file that can
              be  used in profile-guided optimization. It gets the exe-
              cution count of each basic block.

              If you specify keyword srcpos or globdata, a static  pro-
              file  information  file (.spi) is created. These settings
              may increase the time needed to do a parallel build using
              and function ordering.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the hotness threshold. n is  a  per-
                                centage  having  a  value between 0 and
                                100 inclusive. If you specify 0,  there
                                will be no hotness threshold setting in
                                effect for function grouping and  func-
                                tion ordering.

              Default:

              OFF               The  compiler's default hotness thresh-
                                old setting of 10 percent is in  effect
                                for   function  grouping  and  function
                                ordering.

              Description:

              This option lets you set the hotness threshold for  func-
              tion grouping and function ordering.

              The "hotness threshold" is the percentage of functions in
              the application that should be  placed  in  the  applica-
              tion's hot region.  The hot region is the most frequently
              executed part of  the  application.   By  grouping  these
              functions  together  into  one  hot  region,  they have a
              greater probability of remaining resident in the instruc-
              tion  cache.  This  can enhance the application's perfor-
              mance.

              For this option to take effect, you must  specify  option
              -prof-use (Linux) or  /Qprof-use (Windows) and one of the
              following:

              · On Linux systems: -prof-func-groups or -prof-func-order

              · On Windows systems: /Qprof-func-order

              Alternate Options:

              None

       -prof-src-dir

       -no-prof-src-dir

              Determines  whether  directory  information of the source
              file under compilation is considered when looking up pro-
              Description:

              This  option  determines whether directory information of
              the source file  under  compilation  is  considered  when
              looking  up profile data records in the .dpi file. To use
              this option,  you  must  also  specify  option  -prof-use
              (Linux and Mac OS X) or /Qprof-use (Windows).

              If  the  option is enabled, directory information is con-
              sidered when looking up the profile data  records  within
              the  .dpi  file. You can specify directory information by
              using one of the following options:

              · Linux   and    Mac    OS    X:     -prof-src-root    or
                -prof-src-root-cwd

              · Windows:  /Qprof-src-root or /Qprof-src-root-cwd

              If  the  option  is  disabled,  directory  information is
              ignored and only the name of the file is used to find the
              profile data record.

              Note  that options -prof-src-dir (Linux and Mac OS X) and
              /Qprof-src-dir (Windows) control how  the  names  of  the
              user's  source  files  get represented within the .dyn or
              .dpi files.  Options -prof-dir (Linux and Mac OS  X)  and
              /Qprof-dir  (Windows) specify the location of the .dyn or
              the .dpi files.

              Alternate Options:

              None

       -prof-src-root=dir

              Lets you use relative directory  paths  when  looking  up
              profile data and specifies a directory as the base.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the base for the relative paths.

              Default:

              OFF               The setting of relevant options  deter-
                                mines  the  path  used  when looking up
                                profile data records.

              Description:

              /Qprof-gen phase, it stores information into the .dyn  or
              .dpi  file.  Then, when .dyn files are merged together or
              the .dpi file is loaded, only the  directory  information
              below  the  root directory is used for forming the lookup
              key.

              When this option is specified  during  the  -prof-use  or
              /Qprof-use  phase,  it  specifies  a  root directory that
              replaces the root directory specified at the -prof-gen or
              /Qprof-gen phase for forming the lookup keys.

              To be effective, this option or option -prof-src-root-cwd
              (Linux and Mac OS  X)  or  /Qprof-src-root-cwd  (Windows)
              must  be  specified  during  the  -prof-gen or /Qprof-gen
              phase. In addition, if one of these options is not speci-
              fied, absolute paths are used in the .dpi file.

              Alternate Options:

              None

       -prof-src-root-cwd

              Lets  you  use  relative  directory paths when looking up
              profile data and specifies the current working  directory
              as the base.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  setting of relevant options deter-
                                mines the path  used  when  looking  up
                                profile data records.

              Description:

              This  option  lets  you use relative directory paths when
              looking up profile data in .dpi files. It  specifies  the
              current  working  directory  as  the  base.  To  use this
              option, you must also specify option -prof-use (Linux and
              Mac OS) or /Qprof-use (Windows).

              This  option  is available during the following phases of
              compilation:

              · Linux and Mac OS X: -prof-gen and -prof-use phases

              To be effective, this  option  or  option  -prof-src-root
              (Linux and Mac OS X) or /Qprof-src-root (Windows) must be
              specified during the -prof-gen or  /Qprof-gen  phase.  In
              addition, if one of these options is not specified, abso-
              lute paths are used in the .dpi file.

              Alternate Options:

              None

       -prof-use[=keyword]

       -no-prof-use

              Enables the use of profiling information during optimiza-
              tion.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Specifies additional instructions. Pos-
                                sible values are:

                                weighted       Tells    the   profmerge
                                               utility   to   apply   a
                                               weighting  to  the  .dyn
                                               file values when  creat-
                                               ing  the  .dpi  file  to
                                               normalize    the    data
                                               counts when the training
                                               runs have  differentexe-
                                               cution  durations.  This
                                               argument  only  has   an
                                               effect when the compiler
                                               invokes  the   profmerge
                                               utility  to  create  the
                                               .dpi file. This argument
                                               does  not have an effect
                                               if  the  .dpi  file  was
                                               previously created with-
                                               out weighting.

                                [no]merge      Enables   or    disables
                                               automatic  invocation of
                                               the  profmerge  utility.
                                               The  default  is  merge.
                                               Note  that  you   cannot
                                               specify   both  weighted
                                               and nomerge.  If you try
                                               to  specify both values,
                                               a warning will  be  dis-

              Default:

              -no-prof-use      Profiling  information is not used dur-
                                ing optimization.

              Description:

              This option enables  the  use  of  profiling  information
              (including function splitting and function grouping) dur-
              ing optimization. It enables option /Qfnsplit  (Windows).

              This  option  instructs  the  compiler  to produce a pro-
              file-optimized executable and it merges available profil-
              ing output files into a pgopti.dpi file.

              Note  that  there is no way to turn off function grouping
              if you enable it using this option.

              To set the hotness threshold for  function  grouping  and
              function  ordering,  use  option  -prof-hotness-threshold
              (Linux) or /Qprof-hotness-threshold (Windows).

              Alternate Options:

              None

       -prof-value-profiling[=keyword]

              Controls which values are value profiled.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Controls which type of value  profiling
                                is performed. Possible values are:

                                none           Prevents  all  types  of
                                               value profiling.

                                nodivide       Prevents value profiling
                                               of non-compile time con-
                                               stants used in  division
                                               or remainder operations.

                                noindcall      Prevents value profiling
                                               of function addresses at
                                               indirect call sites.

                                all            Enables  all  types   of
                                               value profiling.

              and Mac OS* X) or /Qprof-gen  (Windows*),  it  turns  off
              instrumentation of operations of the specified type. This
              also prevents feedback of values for the operations.

              If this option is specified with option -prof-use  (Linux
              and Mac OS X) or /Qprof-use (Windows), it turns off feed-
              back of values collected of the specified type.

              If you specify  -opt-report  (Linux  and  Mac  OS  X)  or
              /Qopt-report  (Windows) level 2 or higher, the value pro-
              filing specialization information will be reported within
              the PGO optimization report.

              Alternate Options:

              None

       -profile-functions

              Inserts  instrumentation  calls at a function's entry and
              exit points.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No  instrumentation  calls are inserted
                                at a function's entry and exit  points.

              Description:

              This option inserts instrumentation calls at a function's
              entry and exit points within a  single-threaded  applica-
              tion  to  collect the cycles spent within the function to
              produce  reports  that  can  help  in  identifying   code
              hotspots.

              When  the  instrumented  application  is run, this option
              causes the generation  of  a  loop_prof_funcs_<name>.dump
              file, where <name> is a timestamp for the run.

              The  same  data  values  are  also  dumped  into the file
              loop_prof_<name>.xml for use with the data viewer  appli-
              cation,  unless you turn off the output format by setting
              the environment variable INTEL_LOOP_PROF_XML_DUMP to 0.

              Alternate Options:


                                inner          Inserts  instrumentation
                                               before  and  after inner
                                               loops.

                                outer          Inserts  instrumentation
                                               before  and  after outer
                                               loops.

                                all            Inserts  instrumentation
                                               before   and  after  all
                                               loops.

              Default:

              OFF               No instrumentation calls  are  inserted
                                at  a function's entry and exit points,
                                or  before  and  after   instrumentable
                                loop.

              Description:

              This option inserts instrumentation calls at a function's
              entry and exit points within a  single-threaded  applica-
              tion.   For  unthreaded  applications,  it  also  inserts
              instrumentation before and after instrumentable loops  of
              the type listed in keyword.

              When  the  instrumented  application  is run, this option
              causes the generation  of  a  loop_prof_funcs_<name>.dump
              file and a loop_prof_funcs_<name>.dump file, where <name>
              is a timestamp for the run.

              The same timestamp is used for the loop file and function
              file.   This  identifies  that the loop data and function
              data were from the same program run.

              The same data  values  are  also  dumped  into  the  file
              loop_prof_<name>.xml  for use with the data viewer appli-
              cation, unless you turn off the output format by  setting
              the environment variable INTEL_LOOP_PROF_XML_DUMP to 0.

              Alternate Options:

              None

       -profile-loops-report[=n]

              Controls  the level of detail for the data collected when
              instrumentation occurs before and after certain loops.

              Architectures: IA-32, Intel® 64 architectures
                                               also includes  the  loop
                                               min/max and average loop
                                               iteration counts.

                                               To  collect   the   loop
                                               iteration  counts, addi-
                                               tional   instrumentation
                                               is  inserted.  This  can
                                               increase overhead in the
                                               instrumented application
                                               and slow performance.

              Default:

              -profile-loops-report=1 or /Qprofile-loops-report:1
                                The report shows the  cycle  counts  on
                                entry and exits of loops.

              Description:

              This  option  controls  the  level of detail for the data
              collected when instrumentation occurs  before  and  after
              certain  loops. To use this option, you must also specify
              option -profile-loops (Linux and  Mac  OS  X)  or  /Qpro-
              file-loops (Windows).

              The  report  appears in file loop_prof_loops_<name>.dump,
              where <name> is  a  timestamp  value  for  the  run.  The
              columns  listed  in the report will be based on the level
              of detail that was selected during instrumentation.

              It is recommended that the same report level be used  for
              all  files  that are instrumented for the application. If
              different files of the application were instrumented with
              different levels, the report will contain all the columns
              of the highest detail level, but with default values  for
              unavailable  fields  for  files that were instrumented at
              lower levels.

              Alternate Options:

              None

       -pthread

              Tells the compiler to use  pthreads  library  for  multi-
              threading support.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

       -Qinstalldir

              Specifies the root directory where the compiler installa-
              tion was performed.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              dir               Is the root directory where the instal-
                                lation was performed.

              Default:

              OFF               The default root directory for compiler
                                installation is searched for  the  com-
                                piler.

              Description:

              This  option  specifies the root directory where the com-
              piler installation was performed. It  is  useful  if  you
              want  to  use  a different compiler or if you did not use
              the iccvars shell script to set  your  environment  vari-
              ables.

              Alternate Options:

              None

       -Qlocation,string,dir

              Specifies the directory for supporting tools.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              string            Is the name of the tool.

              dir               Is  the directory (path) where the tool
                                is located.

              Default:

              OFF               The  compiler  looks  for  tools  in  a
                                default area.

              Description:

              · link - Indicates the linker.

              · prof - Indicates the profiler.

              · On Windows* systems, the following is also available:

                · masm - Indicates the Microsoft assembler.

              · On Linux* and Mac OS* X systems, the following are also
                available:

                · as - Indicates the assembler.

                · gas - Indicates the GNU assembler.

                · ld - Indicates the loader.

                · gld - Indicates the GNU loader.

                · lib - Indicates an additional library.

                · crt - Indicates the crt%.o files linked into executa-
                  bles to contain the place to start execution.

              Alternate Options:

              None

       -Qoption,string,options

              Passes options to a specified tool.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              string            Is the name of the tool.

              options           Are one or more comma-separated,  valid
                                options for the designated tool.

              Default:

              OFF               No options are passed to tools.

              Description:

              This option passes options to a specified tool.

              If  an  argument  contains  a space or tab character, you
              must enclose the entire argument in  quotation  marks  ("
              "). You must separate multiple arguments with commas.

                · masm - Indicates the Microsoft assembler.

              · On Linux* and Mac OS* X systems, the following are also
                available:

                · as - Indicates the assembler.

                · gas - Indicates the GNU assembler.

                · ld - Indicates the loader.

                · gld - Indicates the GNU loader.

                · lib - Indicates an additional library.

                · crt - Indicates the crt%.o files linked into executa-
                  bles to contain the place to start execution.

              Alternate Options:

              None

       -rcd

              Enables fast float-to-integer conversions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Floating-point   values  are  truncated
                                when a  conversion  to  an  integer  is
                                involved.

              Description:

              This option enables fast float-to-integer conversions. It
              can improve the performance of code that requires  float-
              ing-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.
              should be used for functions that do not directly specify
              a calling convention.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  __regcall  calling convention will
                                only be used if a  function  explicitly
                                specifies it.

              Description:

              This option tells the compiler that the __regcall calling
              convention should be  used  for  functions  that  do  not
              directly  specify a calling convention. This calling con-
              vention ensures that  as  many  values  as  possible  are
              passed or returned in registers.

              It  ensures that __regcall is the default calling conven-
              tion for functions in  the  compilation,  unless  another
              calling convention is specified in a declaration.

              This calling convention is ignored if it is specified for
              a function with variable arguments.

              Note that all __regcall functions must have prototypes.

              Alternate Options:

              None

       -restrict

       -no-restrict

              Determines whether pointer disambiguation is enabled with
              the restrict qualifier.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-restrict      Pointers are  not  qualified  with  the
              assertion  is  true,  the  restrict  option  will have no
              effect on program correctness, but may allow better opti-
              mization.

              Alternate Options:

              None

       -S

              Causes  the  compiler to compile to an assembly file only
              and not link.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Normal compilation and linking occur.

              Description:

              This option causes the compiler to compile to an assembly
              file only and not link.

              On Linux and Mac OS X systems, the assembly file name has
              a  .s  suffix. On Windows systems, the assembly file name
              has an .asm suffix.

              Alternate Options:

              Linux and Mac OS X: None

       -save-temps

       -no-save-temps

              Tells the compiler to  save  intermediate  files  created
              during compilation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              Linux and Mac OS X: -no-save-temps
              · The object .o file (Linux and Mac OS X)  or  .obj  file
                (Windows) is saved.

              · The assembler .s file (Linux and Mac OS X) or .asm file
                (Windows) is saved if you specified -use-asm (Linux  or
                Mac OS X) or /Quse-asm (Windows).

              If  -no-save-temps is specified on Linux or Mac OS X sys-
              tems, the following occurs:

              · The .o file is put into /tmp and deleted after  calling
                ld.

              · The  preprocessed  file  is not saved after it has been
                used by the compiler.

              If /Qsave-temps- is specified  on  Windows  systems,  the
              following occurs:

              · The .obj file is not saved after the linker step.

              · The  preprocessed  file  is not saved after it has been
                used by the compiler.

              NOTE: This option only saves intermediate files that  are
              normally created during compilation.

              Alternate Options:

              None

       -scalar-rep

       -no-scalar-rep

              Enables  scalar  replacement performed during loop trans-
              formation.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-scalar-rep    Scalar  replacement  is  not  performed
                                during loop transformation.

              Description:

              This option enables scalar replacement  performed  during
              Arguments:

              None

              Default:

              OFF               The compiler produces an executable.

              Description:

              This option tells  the  compiler  to  produce  a  dynamic
              shared  object  (DSO)  instead  of  an  executable.  This
              includes linking in all libraries dynamically and passing
              -shared to the linker.

              You  must specify option fpic for the compilation of each
              object file you want to include in the shared library.

              Alternate Options:

              None

       -shared-intel

              Causes Intel-provided libraries to be linked  in  dynami-
              cally.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Intel® libraries are linked  in  stati-
                                cally,  with  the  exception of Intel's
                                OpenMP runtime support  library,  which
                                is linked in dynamically.

              Description:

              This  option causes Intel-provided libraries to be linked
              in dynamically. It is the opposite of -static-intel.

              NOTE: On Mac OS* X systems, when you set  "Intel  Runtime
              Libraries"   to   "Dynamic",   you   must  also  set  the
              DYLD_LIBRARY_PATH environment variable within Xcode or an
              error will be displayed.

              Alternate Options:


              -shared-libgcc    The compiler links the  libgcc  library
                                dynamically.

              Description:

              This  option links the GNU libgcc library dynamically. It
              is the opposite of option static-libgcc.

              This option is useful  when  you  want  to  override  the
              default  behavior  of the static option, which causes all
              libraries to be linked statically.

              Alternate Options:

              None

       -simd

       -no-simd

              Enables or disables the SIMD vectorization feature of the
              compiler.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -simd             The  SIMD  vectorization   feature   is
                                enabled.

              Description:

              This  option  enables  or disables the SIMD vectorization
              feature of the compiler.

              To disable the SIMD  transformations  for  vectorization,
              specify  -no-simd  (Linux  and Mac OS X) or /Qsimd- (Win-
              dows).

              To disable vectorization, specify options -no-vec  (Linux
              and Mac OS X) or /Qvec- (Windows).

              NOTE:  The  SIMD  vectorization  feature is available for
              both Intel® microprocessors  and  non-Intel  microproces-
              sors.  Vectorization  may  call library routines that can
              result in additional performance gain on Intel  micropro-
              cessors than on non-Intel microprocessors. The vectoriza-
              include lists of certain functions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              keyword           Is the function information to include.
                                Possible values are:

                                inline         Includes  a  list of the
                                               functions that were com-
                                               piled   with   -prof-use
                                               (Linux*      OS)      or
                                               /Qprof-use    (Windows*)
                                               and for which  the  .dpi
                                               file  had profile infor-
                                               mation, and  an  indica-
                                               tion   for  each  as  to
                                               whether   the    profile
                                               information   was   USED
                                               (matched)   or   IGNORED
                                               (mismatched).

                                profile        Includes  a  list of the
                                               functions   that    were
                                               inlined  in each object.

              Default:

              -no-sox           The compiler does not save these infor-
                                mational  strings  in the executable or
                                object file.

              Description:

              This option tells the compiler to  save  the  compilation
              options and version number in the Linux* OS executable or
              the Windows* OS object file.  It  also  lets  you  choose
              whether  to  include  lists  of  certain  functions.  The
              information is embedded as a string in each  object  file
              or assembly output.

              If you specify -sox  with no argument, the compiler saves
              the compiler options and version number used in the  com-
              pilation of the objects that make up the executable.

              If  you specify this option on Linux systems, the size of
              the executable on disk is increased slightly.  Each  key-
              word   you  specify increases the size of the executable.
              When you link the object files into an  executable  file,
              the  linker  places  each of the information strings into
              the header of the executable. It is then possible to  use
              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The    compiler   links   with   shared
                                libraries.

              Description:

              This option prevents linking with  shared  libraries.  It
              causes the executable to link all libraries statically.

              Alternate Options:

              None

       -static-intel

              Causes  Intel-provided  libraries  to be linked in stati-
              cally.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              ON                Intel®  libraries  are linked in stati-
                                cally, with the  exception  of  Intel's
                                OpenMP  runtime  support library, which
                                is linked in dynamically.

              Description:

              This option causes Intel-provided libraries to be  linked
              in statically. It is the opposite of -shared-intel.

              Alternate Options:

              Linux  and  Mac  OS  X:  i-static  (this  is a deprecated
              option)

       -staticlib (M*X only)

              Invokes the libtool command to generate static libraries.


              When  passed  this  option, the compiler uses the libtool
              command to produce a static library instead  of  an  exe-
              cutable when linking.

              To  build  dynamic  libraries,  you should specify option
              -dynamiclib or libtool -dynamic <objects>.

              Alternate Options:

              None

       -static-libgcc (L*X only)

              Links the GNU libgcc library statically.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               DEFAULT_DESC

              Description:

              This option links the GNU libgcc library  statically.  It
              is the opposite of option libgcc.

              This  option  is  useful  when  you  want to override the
              default behavior of the libgcc option, which  causes  all
              libraries to be linked statically.

              Alternate Options:

              None

       -std=val

              Tells  the  compiler  to  conform  to a specific language
              standard.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              val               Specifies  the  specific language stan-
                                dard to  conform  to.  Possible  values
                                are:

                                gnu99          Conforms to ISO C99 plus
                                               GNU* extensions.

                                gnu++98        Conforms to the 1998 ISO
                                               C++  standard  plus  GNU
                                               extensions.

                                c++0x          Enables  support for the
                                               following   C++0x   fea-
                                               tures:

                                               · Atomic types and oper-
                                                 ations

                                               · Scoped     enumeration
                                                 types

                                               · Defaulted  and deleted
                                                 functions

                                               · Rvalue references

                                               · Empty macro arguments

                                               · Variadic macros

                                               · Type long long

                                               · Trailing comma in enum
                                                 definition

                                               · Concatenation       of
                                                 mixed-width     string
                                                 literals

                                               · Extended friend decla-
                                                 rations

                                               · Use of ">>"  to  close
                                                 two  template argument
                                                 lists

                                               · Relaxed rules for  use
                                                 of "typename"

                                               · Relaxed rules for dis-
                                                 ambiguation using  the
                                                 "template" keyword

                                               · "extern  template"  to
                                                 suppress instantiation
                                                 of an entity
                                                 UTF-32  encoding  val-
                                                 ues, respectively

                                               · template aliases

                                               · variadic templates

                                               · nullptr

                                               · late-specified  return
                                                 types  as  defined  in
                                                 gcc proposal N2541

                                               · default template argu-
                                                 ments   for   function
                                                 templates

                                               · standard attributes as
                                                 defined  in  gcc  pro-
                                                 posal N2761

                                               · new  style  SFINAE  as
                                                 defined  in  gcc  pro-
                                                 posal N2634

                                gnu++0x        This value is equivalent
                                               to   specifying    value
                                               c++0x.

              Default:

              -std=gnu89 (default for C)
                                Conforms  to  ISO  C90  plus GNU exten-
                                sions.

              -std=gnu++98 (default for C++)
                                Conforms to the 1998 ISO  C++  standard
                                plus GNU* extensions.

              Description:

              This  option  tells the compiler to conform to a specific
              language standard.

              On Windows* OS, you  can  only  specify  values  c99  and
              c++0x.

              Alternate Options:

              None

       -strict-ansi

              Description:

              This option tells the compiler to implement  strict  ANSI
              conformance  dialect.  If  you need to be compatible with
              gcc, use the -ansi option.

              This option sets option fmath-errno.

              Alternate Options:

              None

       -Tfilename (L*X only)

              Tells the linker to read link commands from a file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is the name of the file.

              Default:

              OFF               The linker does not read link  commands
                                from a file.

              Description:

              This option tells the linker to read link commands from a
              file.

              Alternate Options:

              None

       -tbb

              Tells the compiler to link to the Intel® Threading Build-
              ing Blocks (Intel® TBB) libraries.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler  does  not  link  to  the
                                Intel® TBB libraries.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Threaded  applications  are not instru-
                                mented by the compiler for analysis  by
                                Intel® Thread Checker.

              Description:

              This option enables analysis of threaded applications.

              To  use  this option, you must have Intel® Thread Checker
              installed, which is one of the Intel® Threading  Analysis
              Tools. If you do not have this tool installed, the compi-
              lation will fail. Remove the -tcheck (Linux) or  /Qtcheck
              (Windows) option from the command line and recompile.

              For more information about Intel® Thread Checker (includ-
              ing an evaluation copy), open the  page  associated  with
              threading  tools at Intel Software Development Products.

              Alternate Options:

              None

       -tcollect[lib] (L*X only)

              Inserts instrumentation probes calling the  Intel®  Trace
              Collector API.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              lib               Is one of the  Intel®  Trace  Collector
                                libraries; for example, VT, VTcs, VTmc,
                                or VTfs. If you do not specify lib, the
                                default library is VT.

              Default:

              OFF               Instrumentation probes are not inserted
                                into compiled applications.

              Description:


              CAUTION:  Be  careful  with  full instrumentation because
              this feature can produce very large trace files.

              For more details, see the  Intel®  Trace  Collector  User
              Guide.

              Alternate Options:

              None

       -tcollect-filter filename (L*X only)

              Lets  you enable or disable the instrumentation of speci-
              fied functions.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is a configuration file that lists fil-
                                ters,  one  per   line.   Each   filter
                                consists of a regular expression string
                                and a switch. Strings with  leading  or
                                trailing  white  spaces must be quoted.
                                Other strings do not have to be quoted.
                                The switch value can be ON, on, OFF, or
                                off.

              Default:

              OFF               Functions are  not  instrumented.  How-
                                ever,  if  option  -tcollect (Linux) is
                                specified, the filter  setting  is  ".*
                                ON" and all functions get instrumented.

              Description:

              This option lets you enable or disable  the  instrumenta-
              tion of specified functions.

              During  instrumentation,  the  regular expressions in the
              file are matched against the function names.  The  switch
              specifies  whether  matching  functions are to be instru-
              mented or not. Multiple filters are evaluated from top to
              bottom with increasing precedence.

              The names of the functions to match against are formatted
              as follows:

              · C++ function names are  demangled  and  the  C++  class
                hierarchy  is used. Function parameters are stripped to

              (Windows) to get a full list of file and  function  names
              that  the  compiler recognizes from the compilation unit.
              This list can be used as the basis for filtering  in  the
              configuration file.

              To  use  this option, you must have the Intel® Trace Col-
              lector installed and set up through  one  of  its  set-up
              scripts.  This  tool  is  a component of the Intel® Trace
              Analyzer and Collector.

              For more details, see the  Intel®  Trace  Collector  User
              Guide.

              Alternate Options:

              None

       -tprofile (L*X only)

              Generates instrumentation to analyze multi-threading per-
              formance. This is a deprecated option.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Instrumentation is not generated by the
                                compiler for analysis by Intel®  Thread
                                Profiler.

              Description:

              This   option   generates   instrumentation   to  analyze
              multi-threading performance.

              To use this option, you must have Intel® Thread  Profiler
              installed,  which is one of the Intel® Threading Analysis
              Tools. If you do not have this tool installed, the compi-
              lation will fail. Remove the -tprofile (Linux) or /Qtpro-
              file (Windows) option from the command  line  and  recom-
              pile.

              For   more   information  about  Intel®  Thread  Profiler
              (including an evaluation copy), open the page  associated
              with threading tools at Intel Software Development Prod-
              ucts.

              Alternate Options:

              None

              Default:

              notraceback       No extra information  is  generated  in
                                the  object  file  to produce traceback
                                information.

              Description:

              This option tells the compiler to generate extra informa-
              tion  in the object file to provide source file traceback
              information when a severe error occurs at run time.  This
              is intended for use with C code that is to be linked into
              a Fortran program.

              When the severe error occurs, source file, routine  name,
              and  line  number  correlation  information  is displayed
              along with  call  stack  hexadecimal  addresses  (program
              counter trace).

              Note  that when a severe error occurs, advanced users can
              also locate the cause of the error using a map  file  and
              the hexadecimal addresses of the stack displayed when the
              error occurs.

              This option increases the size of the executable program,
              but has no impact on run-time execution speeds.

              It functions independently of the debug option.

              On  Windows*  systems,  traceback  sets  the /Oy- option,
              which forces the compiler to use EBP as the  stack  frame
              pointer.

              On  Windows*  systems,  the  linker  places the traceback
              information in the executable image, in a  section  named
              ".trace".  To see which sections are in an image, use the
              command:

              link -dump -summary your_app_name.exe


              To see more detailed information, use the command:

              link -dump -headers your_app_name.exe


              On Linux* systems, to display the section headers in  the
              image  (including  the  header for the .trace section, if
              any), use the command:

       -Wtrigraphs

       -Wno-trigraphs

              Determines  whether  warnings are issued if any trigraphs
              are encountered that might change the meaning of the pro-
              gram.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-trigraphs    No warnings are issued if any trigraphs
                                are encountered that might  change  the
                                meaning of the program.

              Description:

              This option determines whether warnings are issued if any
              trigraphs are encountered that might change  the  meaning
              of the program.

              Alternate Options:

              None

       -u symbol

              Tells the compiler the specified symbol is undefined.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Standard  rules are in effect for vari-
                                ables.

              Description:

              This option tells the compiler the  specified  symbol  is
              undefined.

              Alternate Options:

              Default:

              OFF               Macro definitions are in  effect  until
                                they are undefined.

              Description:

              This  option undefines any definition currently in effect
              for the specified macro. It is equivalent  to  an  #undef
              preprocessing directive.

              On  Windows  systems,  use  the /u option to undefine all
              previously defined preprocessor values.

              Alternate Options:

              None

       -unroll[=n]

              Tells the compiler the maximum number of times to  unroll
              loops.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the maximum number of times  a  loop
                                can   be   unrolled.  To  disable  loop
                                enrolling, specify 0.

              Default:

              -unroll           The compiler  uses  default  heuristics
                                when unrolling loops.

              Description:

              This  option  tells  the  compiler  the maximum number of
              times to unroll loops.

              If you do not specify n,  the  optimizer  determines  how
              many times loops can be unrolled.

              Alternate Options:

              Linux and Mac OS X: -funroll-loops

       -unroll-aggressive

       -no-unroll-aggressive


              Description:

              This option determines whether  the  compiler  uses  more
              aggressive unrolling for certain loops. The positive form
              of the option may improve performance.

              This option enables aggressive,  complete  unrolling  for
              loops with small constant trip counts.

              Alternate Options:

              None

       -use-intel-optimized-headers

              Determines  whether  the performance headers directory is
              added to the include path search list.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -no-use-intel-optimized-headers
                                The  performance  headers  directory is
                                not added to the  include  path  search
                                list.

              Description:

              This  option  determines  whether the performance headers
              directory is added to the include path search list.

              The performance headers directory is added if you specify
              -use-intel-optimized-headers  (Linux  and  Mac  OS  X) or
              /Quse-intel-optimized-headers (Windows  OS).  Appropriate
              libraries are also linked in, as needed, for proper func-
              tionality.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  include  or utilize options that
              optimize for instruction sets that are available in  both
              Intel  and  non-Intel  microprocessors  (for example SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development tools may or may not  optimize  to  the  same
              degree  for  non-Intel  microprocessors for optimizations
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-
              formance  of  any compiler or library; please let us know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -use-msasm

              Enables the use of blocks and entire functions of  assem-
              bly code within a C or C++ file.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler allows a GNU*-style inline
                                assembly format.

              Description:

              This  option  enables  the use of blocks and entire func-

              Arguments:

              None

              Default:

              OFF               The compiler version information is not
                                displayed.

              Description:

              This option displays the startup banner,  which  contains
              the following compiler information:

              · The  name  of the compiler and its applicable architec-
                ture

              · The major and minor version of the compiler, the update
                number,  and  the  package  number(for example, Version
                11.1.0.047)

              · The specific build and build date (for  example,  Build
                <builddate>)

              · The copyright date of the software

              This option can be placed anywhere on the command line.

              Alternate Options:

              None

       -v[filename]

              Specifies  that  driver tool commands should be displayed
              and executed.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              filename          Is the name of a file.

              Default:

              OFF               No tool commands are shown.

              Description:

              This option specifies that driver tool commands should be
              displayed and executed.
              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -vec              Vectorization is enabled.

              Description:

              This option enables or disables vectorization.

              To  disable vectorization, specify -no-vec (Linux and Mac
              OS X) or /Qvec- (Windows).

              To  disable  the  SIMD  transformations,  specify  option
              -no-simd (Linux and Mac OS X) or /Qsimd- (Windows).

              NOTE:  Using this option enables vectorization at default
              optimization levels for both Intel®  microprocessors  and
              non-Intel   microprocessors.    Vectorization   may  call
              library routines that can result  in  additional  perfor-
              mance  gain  on  Intel  microprocessors than on non-Intel
              microprocessors. The vectorization can also  be  affected
              by  certain options, such as /arch or /Qx (Windows) or -m
              or -x (Linux and Mac OS X).

              Alternate Options:

              None

       -vec-guard-write

       -no-vec-guard-write

              Tells the compiler to perform a conditional  check  in  a
              vectorized loop.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -vec-guard-write  The  compiler  performs  a  conditional
                                check in a vectorized loop.

              Description:
              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  a  value  denoting which diagnostic
                                messages  to  report.  Possible  values
                                are:

                                0              Tells  the vectorizer to
                                               report   no   diagnostic
                                               information.

                                1              Tells  the vectorizer to
                                               report   on   vectorized
                                               loops.

                                2              Tells  the vectorizer to
                                               report on vectorized and
                                               non-vectorized loops.

                                3              Tells  the vectorizer to
                                               report on vectorized and
                                               non-vectorized loops and
                                               any  proven  or  assumed
                                               data dependences.

                                4              Tells  the vectorizer to
                                               report on non-vectorized
                                               loops.

                                5              Tells  the vectorizer to
                                               report on non-vectorized
                                               loops and the reason why
                                               they  were  not  vector-
                                               ized.

              Default:

              -vec-report1      If  the vectorizer has been enabled and
                                you do  not  specify  n,  the  compiler
                                reports   diagnostics   on   vectorized
                                loops. If you do not specify the option
                                on  the command line, the default is to
                                display no messages.

              Description:

              This option controls the diagnostic information  reported
              by  the vectorizer. The vectorizer report is sent to std-
              out.

              If you do not specify n, it is  the  same  as  specifying

              n                 Is  an  integer  whose  value  is   the
                                threshold   for  the  vectorization  of
                                loops. Possible values  are  0  through
                                100.

                                If n is 0, loops get vectorized always,
                                regardless of computation work  volume.

                                If  n is 100, loops get vectorized when
                                performance gains are  predicted  based
                                on  the  compiler  analysis data. Loops
                                get vectorized only if profitable  vec-
                                tor-level  parallel execution is almost
                                certain.

                                The intermediate 1 to 99 values  repre-
                                sent  the  percentage  probability  for
                                profitable speed-up. For example,  n=50
                                directs  the compiler to vectorize only
                                if there is a 50%  probability  of  the
                                code  speeding up if executed in vector
                                form.

              Default:

              -vec-threshold100 Loops get vectorized only if profitable
                                vector-level   parallel   execution  is
                                almost  certain.  This  is   also   the
                                default if you do not specify  n.

              Description:

              This  option  sets  a  threshold for the vectorization of
              loops based on the probability of profitable execution of
              the vectorized loop in parallel.

              This  option  is  useful for loops whose computation work
              volume cannot be determined at compile-time. The  thresh-
              old  is  usually  relevant  when  the  loop trip count is
              unknown at compile-time.

              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.

              Alternate Options:

              None

       --version

              Display GCC-style version information.

              Alternate Options:

              None

       -w

              Disables all warning messages.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Default warning messages are enabled.

              Description:

              This option disables all warning messages.

              Alternate Options:

              Linux and Mac OS X: -W0

              Windows: /W0

       -wn

              Specifies  the  level of diagnostic messages to be gener-
              ated by the compiler.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is  the level of diagnostic messages to
                                be generated. Possible values are:

                                0              Disables warnings;  dis-
                                               plays errors.

                                1              Displays   warnings  and
                                               errors.

                                2              Displays  warnings   and
                                               errors.  This setting is
                                               equivalent  to  level  1
                                               warnings,   and  errors.
                                               This  setting   produces
                                               the most diagnostic mes-
                                               sages.

                                Values 3, 4, and 5 are  only  available
                                on Windows* systems.

              Default:

              n=1               The   compiler  displays  warnings  and
                                errors.

              Description:

              This option specifies the level of diagnostic messages to
              be generated by the compiler.

              Alternate Options:

              None

       -Wa,option1[,option2,...]

              Passes options to the assembler for processing.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              option            Is  an assembler option. This option is
                                not processed  by  the  driver  and  is
                                directly passed to the assembler.

              Default:

              OFF               No options are passed to the assembler.

              Description:

              This option passes one or more options to  the  assembler
              for  processing.  If  the assembler is not invoked, these
              options are ignored.

              Alternate Options:

              None

       -Wabi

       -Wno-abi

              Description:

              This  option  determines  whether  a warning is issued if
              generated code is not C++ ABI compliant.

              Alternate Options:

              None

       -Wall

              Tells the compiler to display errors and warnings.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Default warning messages are enabled.

              Description:

              This option tells the  compiler  to  display  errors  and
              warnings.

              On  Windows  systems,  this is the same as specifying the
              /W2 option.

              If you want to  display  remarks  and  comments,  specify
              option -Wremarks.

              Alternate Options:

              None

       -Wbrief

              Tells  the compiler to display a shorter form of diagnos-
              tic output.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler displays its normal diag-

              Tells  the compiler to perform compile-time code checking
              for certain code.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No  compile-time  code checking is per-
                                formed.

              Description:

              This option tells the compiler  to  perform  compile-time
              code checking for certain code. It specifies to check for
              code that exhibits non-portable  behavior,  represents  a
              possible  unintended  code  sequence, or possibly affects
              operation of the program because of a quiet change in the
              ANSI C Standard.

              Alternate Options:

              None

       -Wcomment

       -Wno-comment

              Determines whether a warning is issued when /* appears in
              the middle of a /* */ comment.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-comment      No warning is issued when /* appears in
                                the middle of a /* */ comment.

              Description:

              This option determines whether a warning is  issued  when
              /* appears in the middle of a /* */ comment.

              Alternate Options:

              Default:

              OFF

              Description:

              Set maximum number  of  template  instantiation  contexts
              shown in diagnostic.

              Alternate Options:

              None

       -Wdeprecated

       -Wno-deprecated

              Determines  whether  warnings  are  issued for deprecated
              features.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-deprecated   No  warnings  are issued for deprecated
                                features.

              Description:

              This option determines whether warnings  are  issued  for
              deprecated features.

              Alternate Options:

              None

       -Weffc++

              Enables  warnings based on certain C++ programming guide-
              lines.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None


              · Use <iostream> rather than <stdio.h>.

              · Use new and delete rather than malloc and free.

              · Use C++ style comments in preference to  C  style  com-
                ments.  C comments in system headers are not diagnosed.

              · Use delete on pointer members in destructors. The  com-
                piler  diagnoses  any  pointer  that  does  not  have a
                delete.

              · Make sure you have a user copy constructor and  assign-
                ment operator in classes containing pointers.

              · Use initialization rather than assignment to members in
                constructors.

              · Make sure the initialization list ordering matches  the
                declartion list ordering in constructors.

              · Make sure base classes have virtual destructors.

              · Make sure operator= returns *this.

              · Make  sure  prefix  forms  of  increment  and decrement
                return a const object.

              · Never overload operators &&, ||, and ,.

              NOTE: The warnings generated by this compiler option  are
              based on the following books from Scott Meyers:

              · Effective  C++  Second  Edition  -  50 Specific Ways to
                Improve Your Programs and Designs

              · More Effective C++ - 35 New Ways to Improve  Your  Pro-
                grams and Designs

              Alternate Options:

              None

       -Werror

              Changes all warnings to errors.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

       -Wextra-tokens

       -Wno-extra-tokens

              Determines whether warnings are issued about extra tokens
              at the end of preprocessor directives.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-extra-tokens The compiler does not warn about  extra
                                tokens   at  the  end  of  preprocessor
                                directives.

              Description:

              This option determines whether warnings are issued  about
              extra tokens at the end of preprocessor directives.

              Alternate Options:

              None

       -Wformat

       -Wno-format

              Determines whether argument checking is enabled for calls
              to printf, scanf, and so forth.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-format       Argument  checking  is  not enabled for
                                calls to printf, scanf, and so forth.

              Description:

              This  option  determines  whether  argument  checking  is
              enabled for calls to printf, scanf, and so forth.

              Alternate Options:
              None

              Default:

              -Wno-format-security
                                No  warning  is  issued when the use of
                                format  functions  may  cause  security
                                problems.

              Description:

              This  option  determines  whether  the  compiler issues a
              warning when the use of format functions may cause  secu-
              rity problems.

              When  -Wformat-security is specified, it warns about uses
              of format functions where the  format  string  is  not  a
              string literal and there are no format arguments.

              Alternate Options:

              None

       -Winline

              Enables diagnostics about what is inlined and what is not
              inlined.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               No  diagnostics are produced about what
                                is inlined and what is not inlined.

              Description:

              This option enables diagnostics about what is inlined and
              what  is  not  inlined.  The  diagnostics  depend on what
              interprocedural functionality is available.

              Alternate Options:

              None

       -Wl,option1[,option2,...]

              Passes options to the linker for processing.

              This option passes one or more options to the linker  for
              processing.  If  the linker is not invoked, these options
              are ignored.

              This option is  equivalent  to  specifying  option  -Qop-
              tion,link,options.

              Alternate Options:

              None

       -Wmain

       -Wno-main

              Determines whether a warning is issued if the return type
              of main is not expected.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-main         No warning is issued if the return type
                                of main is not expected.

              Description:

              This option determines whether a warning is issued if the
              return type of main is not expected.

              Alternate Options:

              None

       -Wmissing-declarations

       -Wno-missing-declarations

              Determines  whether  warnings are issued for global func-
              tions and variables without prior declaration.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              None

       -Wmissing-prototypes

       -Wno-missing-prototypes

              Determines whether warnings are issued for missing proto-
              types.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-missing-prototypes
                                No warnings are issued for missing pro-
                                totypes.

              Description:

              Determines whether warnings are issued for missing proto-
              types.

              Alternate Options:

              None

       -Wnon-virtual-dtor

              Issue  a  warning when a class appears to be polymorphic,
              yet it declares a non-virtual one.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The  compiler does not issue a warning.

              Description:

              Issue a warning when a class appears to  be  polymorphic,
              yet  it  declares  a non-virtual one. This option is sup-
              ported in C++ only.

              Alternate Options:

              Default:

              OFF               No options are passed to the preproces-
                                sor.

              Description:

              This  option passes one or more options to the preproces-
              sor. If the preprocessor is not  invoked,  these  options
              are ignored.

              This  option  is  equivalent  to  specifying option -Qop-
              tion,cpp, options.

              Alternate Options:

              None

       -Wp64

              Tells the compiler  to  display  diagnostics  for  64-bit
              porting.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               The compiler does not display  diagnos-
                                tics for 64-bit porting.

              Description:

              This option tells the compiler to display diagnostics for
              64-bit porting.

              Alternate Options:

              None

       -Wpointer-arith

       -Wno-pointer-arith

              Determines whether warnings are issued  for  questionable
              pointer arithmetic.

              Architectures: IA-32, Intel® 64 architectures
              pointer arithmetic.

              Alternate Options:

              None

       -Wpragma-once

       -Wno-pragma-once

              Determines whether a warning is issued about the  use  of
              #pragma once.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-pragma-once  No warning is issued about the  use  of
                                #pragma once.

              Description:

              This  option determines whether a warning is issued about
              the use of #pragma once.

              Alternate Options:

              None

       -Wremarks

              Tells the compiler to display remarks and comments.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Default warning messages are enabled.

              Description:

              This option tells the compiler  to  display  remarks  and
              comments.


              Arguments:

              None

              Default:

              OFF               The compiler does not issue a  warning.

              Description:

              This  option  tells  the compiler to issue a warning when
              the order of member initializers does not match the order
              in  which they must be executed. This option is supported
              for C++ only.

              Alternate Options:

              None

       -Wreturn-type

       -Wno-return-type

              Determines whether warnings are issued  when  a  function
              uses  the default int return type or when a return state-
              ment is used in a void function.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-return-type  No warnings are issued when a  function
                                uses  the  default  int  return type or
                                when a return statement is  used  in  a
                                void function.

              Description:

              This option determines whether warnings are issued when a
              function uses the default  int  return  type  or  when  a
              return statement is used in a void function.

              Alternate Options:

              None

       -Wshadow
              -Wno-shadow       No  warning  is  issued when a variable
                                declaration hides a  previous  declara-
                                tion.

              Description:

              This option determines whether a warning is issued when a
              variable declaration hides a previous  declaration.  Same
              as -ww1599.

              Alternate Options:

              None

       -Wsign-compare

       -Wno-sign-compare

              Determines  whether warnings are issued when a comparison
              between signed  and  unsigned  values  could  produce  an
              incorrect  result  when  the signed value is converted to
              unsigned.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-sign-compare The compiler does not issue these warn-
                                ings

              Description:

              This option determines whether warnings are issued when a
              comparison  between signed and unsigned values could pro-
              duce an incorrect result when the signed  value  is  con-
              verted to unsigned.

              This option is provided for compatibility with gcc.

              Alternate Options:

              None

       -Wstrict-aliasing

       -Wno-strict-aliasing

              Determines  whether  warnings  are  issued  for code that

              Description:

              This  option  determines  whether warnings are issued for
              code that might violate the optimizer's  strict  aliasing
              rules.  These  warnings  will  only be issued if you also
              specify option –ansi-alias or option –fstrict-aliasing.

              Alternate Options:

              None

       -Wstrict-prototypes

       -Wno-strict-prototypes

              Determines  whether  warnings  are  issued  for functions
              declared or defined without specified argument types.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-strict-prototypes
                                No  warnings  are  issued for functions
                                declared or defined  without  specified
                                argument types.

              Description:

              This  option  determines  whether warnings are issued for
              functions declared or defined without specified  argument
              types.

              Alternate Options:

              None

       -Wtrigraphs

       -Wno-trigraphs

              Determines  whether  warnings are issued if any trigraphs
              are encountered that might change the meaning of the pro-
              gram.

              Architectures: IA-32, Intel® 64 architectures

              of the program.

              Alternate Options:

              None

       -Wuninitialized

       -Wno-uninitialized

              Determines  whether  a warning is issued if a variable is
              used before being initialized.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-uninitialized
                                No  warning  is issued if a variable is
                                used before being initialized.

              Description:

              This option determines whether a warning is issued  if  a
              variable  is used before being initialized. Equivalent to
              -ww592 and -wd592.

              Alternate Options:

              -ww592 and -wd592

       -Wunknown-pragmas

       -Wno-unknown-pragmas

              Determines whether a warning  is  issued  if  an  unknown
              #pragma directive is used.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wunknown-pragmas No warning  is  issued  if  an  unknown
                                #pragma directive is used.

              Determines whether a warning  is  issued  if  a  declared
              function is not used.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-unused-function
                                No warning  is  issued  if  a  declared
                                function is not used.

              Description:

              This  option  determines whether a warning is issued if a
              declared function is not used.

              Alternate Options:

              None

       -Wunused-variable

       -Wno-unused-variable

              Determines whether a warning is  issued  if  a  local  or
              non-constant   static  variable  is  unused  after  being
              declared.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              -Wno-unused-variable
                                No warning is  issued  if  a  local  or
                                non-constant  static variable is unused
                                after being declared.

              Description:

              This option determines whether a warning is issued  if  a
              local  or  non-constant  static  variable is unused after
              being declared.

              Alternate Options:
              Default:

              OFF               No  diagnostic  message  is  issued  if
                                const    char   *   is   converted   to
                                (non-const) char*.

              Description:

              This option issues a diagnostic message if const char* is
              converted to (non-const) char *.

              Alternate Options:

              None

       -x type

              All source files found subsequent to -x type will be rec-
              ognized as a particular type.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              type              is  the  type  of source file. Possible
                                values are:

                                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 preprocessed

                                none           Disable recognition, and
                                               revert to file extension

              Default:

              none              Disable  recognition and revert to file
                                extension.

              Description:

              Arguments:

              code              Indicates  the  instructions  and opti-
                                mizations to be generated for  the  set
                                of processors in each description. Many
                                of the following descriptions refer  to
                                Intel®    Streaming   SIMD   Extensions
                                (Intel® SSE) and Supplemental Streaming
                                SIMD Extensions (Intel® SSSE). Possible
                                values are:

                                CORE-AVX2      May   generate    Intel®
                                               Advanced  Vector  Exten-
                                               sions 2  (Intel®  AVX2),
                                               Intel®    AVX,   SSE4.2,
                                               SSE4.1,   SSSE3,   SSE3,
                                               SSE2,  and  SSE instruc-
                                               tions for Intel® proces-
                                               sors.   Optimizes  for a
                                               future Intel  processor.

                                CORE-AVX-I     May    generate   Intel®
                                               Advanced  Vector  Exten-
                                               sions    (Intel®   AVX),
                                               including   instructions
                                               in  Intel® Core 2™ pro-
                                               cessors in process tech-
                                               nology    smaller   than
                                               32nm,   Intel®   SSE4.2,
                                               SSE4.1,   SSSE3,   SSE3,
                                               SSE2, and  SSE  instruc-
                                               tions for Intel® proces-
                                               sors.  Optimizes  for  a
                                               future  Intel processor.

                                AVX            May   generate    Intel®
                                               Advanced  Vector  Exten-
                                               sions   (Intel®    AVX),
                                               Intel®  SSE4.2,  SSE4.1,
                                               SSSE3, SSE3,  SSE2,  and
                                               SSE   instructions   for
                                               Intel® processors. Opti-
                                               mizes for a future Intel
                                               processor.

                                SSE4.2         May generate Intel® SSE4
                                               Efficient    Accelerated
                                               String and Text Process-
                                               ing   instructions  sup-
                                               ported by Intel® Core ™
                                               i7 processors.  May gen-
                                               ate Intel® SSSE3,  SSE3,
                                               SSE2,  and  SSE instruc-
                                               tions and it  may  opti-
                                               mize   for  Intel®  45nm
                                               Hi-k   next   generation
                                               Intel®  Core ™ microar-
                                               chitecture.         This
                                               replaces  value S, which
                                               is deprecated.

                                SSE3_ATOM      This option  setting  is
                                               deprecated.  It  has the
                                               same effect as  specify-
                                               ing SSSE3_ATOM.

                                SSSE3_ATOM     May    generate    MOVBE
                                               instructions  for  Intel
                                               processors, depending on
                                               the  setting  of  option
                                               -minstruction (Linux and
                                               Mac OS) or /Qinstruction
                                               (Windows). May also gen-
                                               erate   Intel®    SSSE3,
                                               SSE3,   SSE2,   and  SSE
                                               instructions  for  Intel
                                               processors.    Optimizes
                                               for the  Intel®  Atom ™
                                               processor   and   Intel®
                                               Centrino® Atom™ Proces-
                                               sor Technology.

                                SSSE3          May    generate   Intel®
                                               SSSE3, SSE3,  SSE2,  and
                                               SSE   instructions   for
                                               Intel processors.  Opti-
                                               mizes   for  the  Intel®
                                               Core ™   microarchitec-
                                               ture.   For  Mac  OS*  X
                                               systems, this  value  is
                                               only supported on Intel®
                                               64  architecture.   This
                                               replaces  value T, which
                                               is deprecated.

                                SSE3           May   generate    Intel®
                                               SSE3,   SSE2,   and  SSE
                                               instructions  for  Intel
                                               processors.    Optimizes
                                               for  the  enhanced  Pen-
                                               tium®     M    processor
                                               microarchitecture    and
                                               Intel NetBurst® microar-
                                               systems.  This  replaces
                                               value N, which is depre-
                                               cated.

                                You can also  specify  Host.  For  more
                                information,  see option -xHost (Linux*
                                and Mac OS* X) or /QxHost (Windows*).

              Default:

              Windows* systems: None Linux* systems:  None  Mac  OS*  X
              systems  using IA-32 architecture: SSE3 Mac OS* X systems
              using Intel® 64 architecture: SSSE3
                                On Windows systems, if neither /Qx  nor
                                /arch  is  specified,  the  default  is
                                /arch:SSE2.

                                On Linux systems, if neither -x nor  -m
                                is specified, the default is -msse2.

              Description:

              This option tells the compiler to generate optimized code
              specialized for the Intel processor  that  executes  your
              program.  It  also  enables  optimizations in addition to
              Intel processor-specific optimizations.  The  specialized
              code generated by this option may run only on a subset of
              Intel processors.

              The resulting executables from  these  processor-specific
              options  can only be run on the specified or later Intel®
              processors, as they incorporate optimizations specific to
              those processors and use a specific version of the Intel®
              Streaming SIMD Extensions (Intel® SSE) instruction set.

              The binaries produced by these code values  will  run  on
              Intel processors that support all of the features for the
              targeted processor.

              Do not use code values to create binaries that will  exe-
              cute  on a processor that is not compatible with the tar-
              geted processor. The resulting program may fail  with  an
              illegal instruction exception or display other unexpected
              behavior.

              Compiling the function main() with any of the code values
              produces  binaries that display a fatal run-time error if
              they are executed on  unsupported  processors,  including
              all non-Intel processors. .

              Compiler  options m and arch produce binaries that should
              run on processors not made by Intel  that  implement  the
              · Windows and Linux systems: The  replacement  for  W  is
                -msse2  (Linux)  or  /arch:SSE2  (Windows). There is no
                exact replacement for K. However, on  Windows  systems,
                /QxK  is  interpreted  as /arch:IA32; on Linux systems,
                -xK is interpreted as -mia32. You can also  do  one  of
                the following:

                · Upgrade to option -msse2 (Linux) or option /arch:SSE2
                  (Windows). This will produce one code  path  that  is
                  specialized  for Intel® SSE2. It will not run on ear-
                  lier processors

                · Specify the two  option  combination  -mia32  -axSSE2
                  (Linux) or /arch:IA32 /QaxSSE2 (Windows). This combi-
                  nation will produce an executable that  runs  on  any
                  processor  with  IA-32 architecture but with an addi-
                  tional specialized Intel® SSE2 code path.

              The -x and /Qx options  enable  additional  optimizations
              not  enabled  with  options -m or /arch (nor with options
              –ax and /Qax).

              On Windows* systems, options /Qx and /arch  are  mutually
              exclusive.   If both are specified, the compiler uses the
              last one specified and generates a warning. Similarly, on
              Linux* and Mac OS* X systems, options -x and -m are mutu-
              ally exclusive. If both are specified, the compiler  uses
              the last one specified and generates a warning.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development tools may include  or  utilize  options  that
              optimize  for instruction sets that are available in both
              Intel and non-Intel  microprocessors  (for  example  SIMD
              instruction  sets),  but  do  not  optimize  equally  for
              non-Intel microprocessors.  In addition, certain compiler
              options  for Intel compilers, including some that are not
              specific to Intel micro-architecture,  are  reserved  for
              Intel  microprocessors.   For  a  detailed description of
              Intel compiler options, including  the  instruction  sets
              and specific microprocessors they implicate, please refer
              to the “Intel Compiler User and Reference Guides” under
              “Compiler Options."  Many library routines that are part
              of Intel compiler products are more highly optimized  for
              Intel  microprocessors  than  for  other microprocessors.
              While the compilers and libraries in Intel compiler prod-
              ucts offer optimizations for both Intel and Intel-compat-
              ible  microprocessors,  depending  on  the  options   you
              select,  your code and other factors, you likely will get
              microprocessors.

              While Intel believes  our  compilers  and  libraries  are
              excellent choices to assist in obtaining the best perfor-
              mance on Intel and non-Intel microprocessors, Intel  rec-
              ommends  that  you evaluate other compilers and libraries
              to determine which best meet your requirements.  We  hope
              to  win  your business by striving to offer the best per-
              formance of any compiler or library; please let  us  know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -X

              Removes standard directories from the include file search
              path.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              None

              Default:

              OFF               Standard directories are in the include
                                file search path.

              Description:

              This option removes standard directories from the include
              file search path. It prevents the compiler from searching
              the default path specified  by  the  INCLUDE  environment
              variable.

              On  Linux  and Mac OS X systems, specifying -X (or -noin-
              clude)  prevents   the   compiler   from   searching   in
              /usr/include for files specified in an INCLUDE statement.

              You can use this 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.

              Alternate Options:

              Default:

              Windows* systems: None Linux* systems:  None  Mac  OS*  X
              systems  using  IA-32 architecture: -xSSE3 Mac OS* X sys-
              tems using Intel® 64 architecture: -xSSSE3
                                On Windows systems, if neither /Qx  nor
                                /arch  is  specified,  the  default  is
                                /arch:SSE2.

                                On Linux systems, if neither -x nor  -m
                                is specified, the default is -msse2.

              Description:

              This  option  tells the compiler to generate instructions
              for the highest instruction set available on the compila-
              tion host processor.

              The instructions generated by this compiler option differ
              depending on the compilation host processor.

              The following table describes the effects  of  specifying
              the  -xHost  (Linux* and Mac OS* X) or /QxHost (Windows*)
              option and it tells whether the resulting executable will
              run on processors different from the host processor.

              Descriptions in the table refer to Intel® Advanced Vector
              Extensions (Intel® AVX), Intel® Streaming SIMD Extensions
              (Intel®  SSE),  and  Intel®  Supplemental  Streaming SIMD
              Extensions (Intel® SSSE).

              Instruction Set of Host Processor
                                Effects When the -xHost or /QxHost Com-
                                piler Option is Specified

              Intel® AVX2       When compiling on Intel® Processors:

              Corresponds  to option -xCORE-AVX2 (Linux* and Mac OS* X)
              or /QxCORE-AVX2 (Windows*). The generated executable will
              not  run  on  non-Intel processors and it will not run on
              Intel®  processors  that  do  not  support  Intel®   AVX2
              instructions.

              When compiling on non-Intel Processors:

              Corresponds  to option -march=core-avx2 (Linux and Mac OS
              X) or /arch:CORE-AVX2 (Windows). The
                                generated executable will run on Intel®
                                processors  and  non-Intel   processors
                                that   support  at  least  Intel®  AVX2
                                instructions.  You may see  a  run-time
                                error  if  the  run-time processor does
                                processors   and  non-Intel  processors
                                that  support  at  least   Intel®   AVX
                                instructions.   You  may see a run-time
                                error if the  run-time  processor  does
                                not support Intel® AVX instructions.

              Intel® SSE4.2     When compiling on Intel® Processors:

              Corresponds  to option -xSSE4.2 (Linux* and Mac OS* X) or
              /QxSSE4.2
                                (Windows*).  The  generated  executable
                                will not run  on  non-Intel  processors
                                and  it  will not run on Intel® proces-
                                sors that do not support Intel®  SSE4.2
                                instructions.

              When compiling on non-Intel Processors:

              Corresponds  to  option  -msse4.2 (Linux and Mac OS X) or
              /arch:SSE4.2
                                (Windows).   The  generated  executable
                                will  run  on  Intel®  processors   and
                                non-Intel  processors  that  support at
                                least Intel® SSE4.2  instructions.  You
                                may   see   a  run-time  error  if  the
                                run-time  processor  does  not  support
                                Intel® SSE4.2 instructions.

              Intel® SSE4.1     When compiling on Intel® Processors:

              Corresponds  to option -xSSE4.1 (Linux* and Mac OS* X) or
              /QxSSE4.1
                                (Windows*).  The  generated  executable
                                will not run  on  non-Intel  processors
                                and  it  will not run on Intel® proces-
                                sors that do not support Intel®  SSE4.1
                                instructions.

              When compiling on non-Intel Processors:

              Corresponds  to  option  -msse4.1 (Linux and Mac OS X) or
              /arch:SSE4.1
                                (Windows).   The  generated  executable
                                will  run  on  Intel®  processors   and
                                non-Intel  processors  that  support at
                                least Intel® SSE4.1  instructions.  You
                                may   see   a  run-time  error  if  the
                                run-time  processor  does  not  support
                                Intel® SSE4.1 instructions.

              Intel® SSSE3      When compiling on Intel® Processors:

                                non-Intel  processors  that  support at
                                least Intel®  SSSE3  instructions.  You
                                may   see   a  run-time  error  if  the
                                run-time  processor  does  not  support
                                Intel® SSSE3 instructions.

              Intel® SSE3       When compiling on Intel® Processors:

              Corresponds  to  option  -xSSE3 (Linux* and Mac OS* X) or
              /QxSSE3
                                (Windows*).  The  generated  executable
                                will not run  on  non-Intel  processors
                                and  it  will not run on Intel® proces-
                                sors that do not  support  Intel®  SSE3
                                instructions.

              When compiling on non-Intel Processors:

              Corresponds  to  option  -msse3  (Linux  and Mac OS X) or
              /arch:SSE3
                                (Windows).   The  generated  executable
                                will  run  on  Intel®  processors   and
                                non-Intel  processors  that  support at
                                least Intel® SSE3 instructions. You may
                                see  a  warning  run-time  error if the
                                run-time  processor  does  not  support
                                Intel® SSE3 instructions.

              Intel® SSE2       When  compiling on Intel® Processors or
                                non-Intel Processors:

              Corresponds to option -msse2 (Linux* and Mac  OS*  X)  or
              /arch:SSE2
                                (Windows*).  The  generated  executable
                                will   run  on  Intel®  processors  and
                                non-Intel processors  that  support  at
                                least Intel® SSE2 instructions. You may
                                see a run-time error  if  the  run-time
                                processor  does not support Intel® SSE2
                                instructions.

              For more information on  other  settings  for  option  -x
              (Linux*  and  Mac  OS*  X)  and  /Qx (Windows*), see that
              option description.

              Optimization Notice

              = = = = = = = = = =

              Intel  compilers,  associated  libraries  and  associated
              development  tools  may  include  or utilize options that
              optimize for instruction sets that are available in  both
              ible   microprocessors,  depending  on  the  options  you
              select, your code and other factors, you likely will  get
              extra performance on Intel microprocessors.

              Intel  compilers,  associated  libraries  and  associated
              development tools may or may not  optimize  to  the  same
              degree  for  non-Intel  microprocessors for optimizations
              that are not  unique  to  Intel  microprocessors.   These
              optimizations  include Intel® Streaming SIMD Extensions 2
              (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel®
              SSE3),  and  Supplemental  Streaming  SIMD  Extensions  3
              (SSSE3) instruction sets and other optimizations.   Intel
              does  not  guarantee  the availability, functionality, or
              effectiveness of any optimization on microprocessors  not
              manufactured  by  Intel.   Microprocessor-dependent opti-
              mizations in this product are intended for use with Intel
              microprocessors.

              While  Intel  believes  our  compilers  and libraries are
              excellent choices to assist in obtaining the best perfor-
              mance  on Intel and non-Intel microprocessors, Intel rec-
              ommends that you evaluate other compilers  and  libraries
              to  determine which best meet your requirements.  We hope
              to win your business by striving to offer the  best  per-
              formance  of  any compiler or library; please let us know
              if you find we do not.

              Notice revision #20110307

              = = = = = = = = = =

              Alternate Options:

              None

       -Xlinker option

              Passes a linker option directly to the linker.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              option            Is a linker option.

              Default:

              OFF               No options are passed directly  to  the
                                linker.

              Description:

              Alternate Options:

              None

       -Zp[n]

              Specifies alignment for structures on byte boundaries.

              Architectures: IA-32, Intel® 64 architectures

              Arguments:

              n                 Is the  byte  size  boundary.  Possible
                                values are 1, 2, 4, 8, or 16.

              Default:

              Zp16              Structures  are  aligned on either size
                                boundary 16 or the boundary  that  will
                                naturally align them.

              Description:

              This  option  specifies  alignment for structures on byte
              boundaries.

              If you do not specify n, you get Zp16.

              Alternate Options:

              None


PREDEFINED MACROS

       The Intel(R) C++ Compiler documentation describes the predefined
       macros  in  detail. This section provides a brief summary of the
       supported macros.

       The ANSI/ISO standard for C language requires that certain  pre-
       defined  macros  be  supplied with conforming compilers. The GNU
       gcc* predefined macros are all set depending on what version  of
       gcc  is found  on  the user's system. (This is overridden if the
       -gcc-version compiler option is passed on the command line.)

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

       You can use the -U option to suppress an automatic definition of
       a  predefined macro. This option suppresses any macro definition
       currently in effect for the specified name.   This  option  per-
       forms the same function as an #undef preprocessor directive.

                         -no-intel-extensions  is  specified, the value
                         is undefined.

       __cplusplus       1 (with C++ compiler)

       __DEPRECATED      1

       __EDG__           1

       __EDG_VERSION__   EDG version

       __ELF__           1

       __extension__

       __EXCEPTIONS      Defined as 1 when -fno-exceptions is not used.

       __GNUC__          The  major  version number of gcc installed on
                         the system.

       __GNUG__          The major version number of g++  installed  on
                         the system.

       __gnu_linux__     1

       __GNUC_MINOR__    The   minor  version  number  of  gcc  or  g++
                         installed on the system.

       __GNUC_PATCHLEVEL__
                         The patch level version number of gcc  or  g++
                         installed on the system.

       __GXX_ABI_VERSION 102

       __HONOR_STD       1

       __i386

       Available only on systems based on IA-32 architecture.
                         1

       __i386__

       Available only on systems based on IA-32 architecture.
                         1

       i386

       Available only on systems based on IA-32 architecture.
                         1

       __ICC             Intel compiler version

       linux             1

       __LONG_DOUBLE_SIZE__
                         80

       __LONG_MAX__

       Available only on systems based on Intel® 64 architecture.
                         9223372036854775807L

       __LP64__

       Available only on systems based on Intel® 64 architecture.
                         1

       _LP64

       Available only on systems based on Intel® 64 architecture.
                         1

       _MT

       Available only on systems based on Intel® 64 architecture.
                         1

       __MMX__

       Available only on systems based on Intel® 64 architecture.
                         1

       __NO_INLINE__     1

       __NO_MATH_INLINES 1

       __NO_STRING_INLINES
                         1

       _OPENMP           Defined as 200805 when -openmp is specified.

       __OPTIMIZE__      1

       __pentium4        1

       __pentium4__      1

       __PIC__           Defined as 1 when -fPIC is specified.

       __pic__           Defined as 1 when -fPIC is specified.

       _PGO_INSTRUMENT   Defined as 1 when -prof-gen[x] is specified.

                         instructions.

       __SSE2__          Defined  as 1 for processors that support SSE2
                         instructions.

       __SSE3__          Defined as 1 for processors that support  SSE3
                         instructions.

       __SSSE3__         Defined as 1 for processors that support SSSE3
                         instructions.

       __unix            1

       __unix__          1

       unix              1

       __USER_LABEL_PREFIX__


       __VERSION__       Intel version string

       __WCHAR_T         1

       __WCHAR_TYPE__    long int on IA-32 architecture ; int on Intel®
                         64 architecture

       __WINT_TYPE__     unsigned int

       __x86_64

       Available only on systems based on Intel® 64 architecture.
                         1

       __x86_64__

       Available only on systems based on Intel® 64 architecture.
                         1

       The  following  table  lists  the predefined macros on Mac OS* X
       systems based on either the IA-32 or Intel® 64 architecture:


       Macro Name (IA-32 and Intel 64 architecture)
                          Value

       __APPLE__         1

       __APPLE_CC__      gcc build number

       __DYNAMIC__       1

                         The   patch   level   version  number  of  gcc
                         installed on the system.

       __GXX_ABI_VERSION ABI version

       __HONOR_STD       1

       i386

       Available only on systems based on IA-32 architecture.
                         1

       __i386

       Available only on systems based on IA-32 architecture.
                         1

       __i386__

       Available only on systems based on IA-32 architecture.
                         1

       __ICC             Intel compiler version

       __INTEL_COMPILER  Intel compiler version

       __INTEL_COMPILER_BUILD_DATE
                         YYYYMMDD

       __INTEL_RTTI__    Defined as 1 when -fno-rtti is not  specified.

       __INTEL_STRICT_ANSI__
                         Defined as 1 when -strict-ansi is specified.

       __LITTLE_ENDIAN__ 1

       __LONG_DOUBLE_SIZE__
                         80

       __MACH__          1

       __MMX__           1

       __NO_INLINE__     1

       __NO_MATH_INLINES 1

       __NO_STRING_INLINES
                         1

       _OPENMP           Defined as 200805 when -openmp is specified.


       __SIGNED_CHARS__  1

       __SIZE_TYPE__     unsigned long

       __SSE__           Defined  as  1 for processors that support SSE
                         instructions.

       __SSE2__          Defined as 1 for processors that support  SSE2
                         instructions.

       __SSE3__          Defined  as 1 for processors that support SSE3
                         instructions.

       __SSSE3__         Defined as 1 for processors that support SSSE3
                         instructions.

       __STDC__          1

       __STDC_HOSTED__   1

       __USER_LABEL_PREFIX__
                         _

       __VERSION__       Intel version string

       __WCHAR_MAX__     2147483647

       __WCHAR_TYPE__    long int

       __WINT_TYPE__     unsigned int

       __x86_64

       Available only on systems based on Intel® 64 architecture.
                         1

       __x86_64__

       Available only on systems based on Intel® 64 architecture.
                         1


ENVIRONMENT VARIABLES

       You  can  customize  your  environment  by  setting  environment
       variables.

       Also, the Intel C++ Compiler installation includes shell scripts
       that  you can use to set environment variables. See the Intel(R)
       C++ Compiler XE Documentation for more information.


       Environment Variable
       GXX_INCLUDE       Specifies the location of the gcc headers. Set
                         this  variable to specify the locations of the
                         GCC installed files when the compiler does not
                         find the needed values as specified by the use
                         of the -gcc-name=<directory-name>/gcc  option.

       GXX_ROOT          Specifies  the  location  of the gcc binaries.
                         Set this variable to specify the locations  of
                         the GCC installed files when the compiler does
                         not find the needed values as specified by the
                         use   of   the  -gcc-name=<directory-name>/gcc
                         option.

       IA32ROOT (IA-32 architecture and Intel® 64 architecture)
                         Points  to  the  directories  containing   the
                         include  and  library files for a non-standard
                         installation structure.

       ICCCFG            Specifies the configuration file for customiz-
                         ing  compilations  when  invoking the compiler
                         using icc.

       ICPCCFG           Specifies the configuration file for customiz-
                         ing  compilations  when  invoking the compiler
                         using icpc.

       INTEL_LICENSE_FILE
                         Specifies the location for the  Intel  license
                         file.

       LD_LIBRARY_PATH (Linux OS)
                         Specifies the location for shared objects.

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

       PROF_DIR          Specifies the directory where profiling  files
                         (files with extensions .dyn, .dpi, .spi and so
                         forth) are stored. The default is to store the
                         .dyn files in the source directory of the file
                         containing  the  first  executed  instrumented
                         routine in the binary compiled with -prof-gen

       PROF_DPI          Name   for  the  .dpi  file.  The  default  is
                         pgopti.dpi.

       TMP TMPDIR TEMP   Specifies the location for temporary files. If
                         none  of  these  are  specified,  the compiler
                         stores temporary files in /tmp.

        OpenMP* environment variables (OMP_) and extensions (KMP_)

                         thread encounters OpenMP* API  calls  or  con-
                         structs,  then  the  program may abort with an
                         error message. If this limit is reached at the
                         time  an  OpenMP  parallel  region  begins,  a
                         one-time  warning  message  may  be  generated
                         indicating  that  the number of threads in the
                         team was reduced, but the  program  will  con-
                         tinue  execution. This environment variable is
                         only used for programs compiled  with  -openmp
                         or -openmp-profile. Default: No enforced limit

       KMP_BLOCKTIME     Sets the time, in milliseconds, that a  thread
                         should wait, after completing the execution of
                         a parallel region, before sleeping.

       Use the optional character suffixes: s (seconds), m (minutes), h
       (hours),  or  d  (days)  to specify the units. Default: 200 mil-
       liseconds

       KMP_CPUINFO_FILE  Specifies an alternate file name for file con-
                         taining machine topology description. The file
                         must be in the same format  as  /proc/cpuinfo.
                         Default: None

       This  environment  variable  is  available  for  both  Intel and
       non-Intel microprocessors but it may  perform  additional  opti-
       mizations   for  Intel  microprocessors  than  it  performs  for
       non-Intel microprocessors.

       KMP_DYNAMIC_MODE  Selects  the method used to determine the num-
                         ber of threads to use for  a  parallel  region
                         when OMP_DYNAMIC=true.  Possible values: (asat
                         | load_balance | thread_limit), where,

       · asat: estimates number of  threads  based  on  parallel  start
         time;

       · load_balance: tries to avoid using more threads than available
         execution units on the machine;

       · thread_limit: tries to avoid using  more  threads  than  total
         execution units on the machine.

        Default:  load_balance (only on Linux* OS, if support is avail-
       able); thread_limit (elsewhere)

       KMP_INHERIT_FP_CONTROL
                         Enables (1) or disables (0) the copying of the
                         floating point control settings of the  master
                         thread  to the floating point control settings
                         of the OpenMP* worker threads at the start  of
                         each parallel region.

       units. Default: max (32k, system minimum thread stack size)

       KMP_SETTINGS      Enables  (1)  or  disables (0) the printing of
                         OpenMP run-time library environment  variables
                         during  program  execution. Two lists of vari-
                         ables are  printed:  user-defined  environment
                         variables  settings  and  effective  values of
                         variables used  by  OpenMP  run-time  library.
                         Default: 0

       KMP_STACKSIZE     Sets  the number of bytes to allocate for each
                         OpenMP* thread to use as  its  private  stack.
                         Recommended size is 16m. Use the optional suf-
                         fix b, k, m, g, or t, to specify bytes,  kilo-
                         bytes, megabytes, gigabytes, or terabytes.This
                         variable does not affect the native  operating
                         system threads created by the user program nor
                         the thread executing the sequential part of an
                         OpenMP*  program  or parallel programs created
                         using -parallel (Linux and Mac OS X) or /Qpar-
                         allel (Windows).  Default: IA-32 architecture:
                         2m, Intel® 64 architecture: 4m.

       KMP_VERSION       Enables (1) or disables (0)  the  printing  of
                         OpenMP  run-time  library  version information
                         during program execution. Default: disabled.

       OMP_DYNAMIC       Enables  (1)  or  disables  (0)  the   dynamic
                         adjustment of the number of threads.

       Default:

       0

       Example syntax:

       export OMP_DYNAMIC=value

       OMP_MAX_ACTIVE_LEVELS
                         Limits  the number of simultaneously executing
                         threads in an OpenMP program.

       If this limit is reached and  another  native  operating  system
       thread  encounters  OpenMP  API calls or constructs, the program
       can abort with an error message. If this limit is  reached  when
       an  OpenMP  parallel  region  begins, a one-time warning message
       might be generated indicating that the number of threads in  the
       team was reduced, but the program will continue.

       This environment variable is only  used  for  programs  compiled
       with  the following options: -openmp or -openmp-profile or -par-
       allel (Linux and Mac OS X) and /Qopenmp or  /Qopenmp-profile  or

       Default:

       0

       Example syntax:

       export OMP_NESTED=value

       OMP_NUM_THREADS   Sets  the maximum number of threads to use for
                         OpenMP* parallel regions if no other value  is
                         specified in the application.

       This  environment variable applies to both -openmp and -parallel
       (Linux and Mac OS X) or /Qopenmp and /Qparallel (Windows).

       Default: Number of processors visible to the operating system.

       Example syntax:

       export OMP_NUM_THREADS=value

       OMP_SCHEDULE      Sets   the   run-time  schedule  type  and  an
                         optional chunk size.

       Default: STATIC, no chunk size specified

       Example syntax:

       export OMP_SCHEDULE="kind[,chunk_size]"

       This environment  variable  is  available  for  both  Intel  and
       non-Intel  microprocessors  but  it may perform additional opti-
       mizations  for  Intel  microprocessors  than  it  performs   for
       non-Intel microprocessors.

       OMP_STACKSIZE     Sets the number of bytes to allocate for  each
                         OpenMP  thread to use as the private stack for
                         the thread.

       Recommended size is 16M.

       Use  the  optional  suffixes:  B  (bytes),  K   (Kilobytes),   M
       (Megabytes),  G  (Gigabytes),  or  T  (Terabytes) to specify the
       units. If only value is specified and B, K, M, G, or  T  is  not
       specified, then size is assumed to be K (Kilobytes).

       This variable  does  not  affect  the  native  operating  system
       threads created by the user program nor the thread executing the
       sequential part of an OpenMP program or parallel  programs  cre-
       ated  using  -parallel  (Linux and Mac OS X) or /Qparallel (Win-
       dows).
       export OMP_STACKSIZE=value

       OMP_THREAD_LIMIT  Limits the number of simultaneously  executing
                         threads in an OpenMP* program.

       If  this  limit  is  reached and another native operating system
       thread encounters OpenMP* API calls or constructs,  the  program
       can  abort  with an error message. If this limit is reached when
       an OpenMP parallel region begins,  a  one-time  warning  message
       might  be generated indicating that the number of threads in the
       team was reduced, but the program will continue.

       This  environment  variable  is  only used for programs compiled
       with the following options: -openmp or

       -openmp-profile  or  -parallel (Linux and Mac OS X) and /Qopenmp
       or /Qopenmp-profile or /Qparallel (Windows).

       omp_get_thread_limit() routine returns the value of the limit.

       Default: No enforced limit

       Related  environment  variable: KMP_ALL_THREADS. Its value over-
       rides OMP_THREAD_LIMIT.

       Example syntax:

       export OMP_THREAD_LIMIT=value

       OMP_WAIT_POLICY   Decides whether threads spin (active) or sleep
                         (passive) while  they  are  waiting.  Default:
                         Passive

        Syntax:

       export OMP_WAIT_POLICY=value

        GNU* Environment Variables and extensions

       CPATH             Specifies  path to include directory for C/C++
                         compilations.

       C_INCLUDE_PATH    Specifies path  to  include  directory  for  C
                         compilations.

       CPLUS_INCLUDE_PATH
                         Specifies  path  to  include directory for C++
                         compilations.

       DEPENDENCIES_OUTPUT
                         Specifies how to output dependencies for  make
                         based on the non-system header files processed
                         and  GOMP_STACKSIZE

       LIBRARY_PATH      Specifies a colon-separated list  of  directo-
                         ries, much like PATH.

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

        PGO Environment Variables


       INTEL_PROF_DUMP_CUMULATIVE
                         When using interval profile dumping (initiated
                         by INTEL_PROF_DUMP_INTERVAL  or  the  function
                         _PGOPTI_Set_Interval_Prof_Dump)   during   the
                         execution of an instrumented user application,
                         allows creation of a single .dyn file  to con-
                         tain profiling information  instead of  multi-
                         ple  .dyn  files. If this environment variable
                         is not set,  executing  an  instrumented  user
                         application  creates  a new .dyn file for each
                         interval. Setting this environment variable is
                         useful  for applications that do not terminate
                         or those that terminate abnormally (bypass the
                         normal exit code).

       INTEL_PROF_DUMP_INTERVAL
                         Initiates   interval  profile  dumping  in  an
                         instrumented user application.  This  environ-
                         ment variable may be used to initiate Interval
                         Profile Dumping in  an  instrumented  applica-
                         tion.

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

       PROF_DUMP_INTERVAL
                         Deprecated;    use    INTEL_PROF_DUMP_INTERVAL
                         instead.

       PROF_NO_CLOBBER   Alters    the   feedback   compilation   phase
                         slightly. By default, during the feedback com-
                         pilation  phase, the compiler merges 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

       See the Registration web site  for  licensing  and  registration
       guidance:



SEE ALSO

       icc(1), ld(1)

       In  the  Intel(R)  C++  Compiler Documentation, the Intel(R) C++
       Building Applications guide  and  the  Intel(R)  C++  Optimizing
       Applications  guide  provide  detailed  information on using the
       Intel C++ Compiler.

       In addition, see these other documents provided with  the  Intel
       C++ Compiler:

       · Product Release Notes

       · Intel(R)  C++  Compiler  Documentation: the Intel C++ Compiler
         Options reference

       · Intel(R) C++ Compiler  Documentation:  the  Intel  C++  Float-
         ing-point Operations manual

       · Intel(R)  C++ Compiler Documentation: the Intel C++ Intrinsics
         Reference

       · Intel(R) C++ Compiler Documentation: the  Intel  C++  Compiler
         Reference



Legal Information

       INFORMATION  IN  THIS  DOCUMENT  IS  PROVIDED IN CONNECTION WITH
       INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED,  BY  ESTOPPEL
       OR  OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY
       THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S  TERMS  AND  CONDI-
       TIONS  OF  SALE  FOR  SUCH  PRODUCTS, INTEL ASSUMES NO LIABILITY
       WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY,
       RELATING  TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABIL-
       ITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR  PURPOSE,
       MERCHANTABILITY,  OR  INFRINGEMENT  OF  ANY PATENT, COPYRIGHT OR
       OTHER INTELLECTUAL PROPERTY RIGHT.  UNLESS OTHERWISE  AGREED  IN
       WRITING  BY  INTEL,  THE  INTEL  PRODUCTS  ARE  NOT DESIGNED NOR
       INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF  THE  INTEL
       PRODUCT  COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH
       MAY OCCUR.  Intel may make changes to specifications and product
       descriptions  at  any  time,  without notice. Designers must not
       rely on the  absence  or  characteristics  of  any  features  or
       instructions  marked  "reserved"  or "undefined." Intel reserves
       these for future definition and  shall  have  no  responsibility
       whatsoever  for  conflicts  or  incompatibilities  arising  from
       future changes to them.  The  information  here  is  subject  to
       http://www.intel.com/products/processor_number for details.

       Centrino,  Cilk,  Intel, Intel Atom, Intel Core, Intel NetBurst,
       Itanium, MMX, Pentium, Xeon are trademarks of Intel  Corporation
       in the U.S. and/or other countries.

       *  Other names and brands may be claimed as the property of oth-
       ers.

       Copyright (C) 1996-2011, Intel Corporation. All rights reserved.

       Portions  Copyright  (C)  2001, Hewlett-Packard Development Com-
       pany, L.P.



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

Man(1) output converted with man2html