This topic provides you with a reference to all the compilation control
options and some linker control options.
Option |
Description |
Default |
-0f_check
IA-32 only |
Avoids the incorrect decoding of certain 0f
instructions for code targeted at older processors.
|
OFF |
-A- |
Disables all predefined macros.
|
OFF |
-[no]align
IA-32 only |
Analyze and reorder memory layout for variables and arrays. |
OFF |
-Aname[(value)] |
Associates a symbol name with
the specified sequence of value .
Equivalent to an #assert preprocessing directive.
|
OFF |
-ansi[-] |
Enables [disables] assumption of the program's ANSI conformance.
|
OFF |
-ax{i|M|K|W}
IA-32 only |
Generates specialized code for processor-specific codes i, M, K,
W while also generating generic IA-32 code.
- i = Pentium®
Pro and Pentium II processor instructions
- M = MMX(TM)
instructions
- K = streaming SIMD extensions
- W = Pentium 4 processor instructions
|
OFF |
-C |
Places comments in preprocessed source output.
|
OFF |
-c |
Stops the compilation process after an object file has been
generated. The compiler generates an object file for each C or C++ source
file or preprocessed source file. Also takes an assembler file and invokes
the assembler to generate an object file.
|
OFF |
-c99 |
Enable C99 support for C programs |
OFF |
-Dname[{=|#}value] |
Defines a macro name and
associates it with the specified value
.
|
OFF |
-dryrun |
Show driver tool commands but do not execute tools. |
OFF |
-E |
Stops the compilation process after the C or C++ source files have been
preprocessed, and writes the results to stdout.
|
OFF |
-EP |
Preprocess to stdout omitting #line
directives.
|
OFF |
-falias |
Assume aliasing in program. |
ON |
-fcode-asm |
Produce assembly file with optional code annotations. |
OFF |
-fno-alias |
Assume no aliasing in program. |
OFF |
-ffnalias |
Assume aliasing within functions |
ON |
-fno-fnalais |
Assume no aliasing within functions, but assume aliasing across calls. |
OFF |
-f[no]verbose-asm |
Produce assembly file with compiler components. |
ON |
-fp
IA-32 only |
Use EBP stack frame for all functions.
|
OFF |
-fpic, -fPic |
Generate position independent code. |
OFF |
-fp_port
IA-32 only |
Round fp results at assignments and casts. Some speed impact. |
OFF |
-fr32
Itanium-based
systems only |
Use only lower 32 floating-point registers. |
OFF |
-fsource-asm |
Produce assembly file with optional code annotations. |
|
-ftz
Itanium-based
systems only |
Flushes denormal results to zero. |
OFF |
-g |
Generates symbolic debugging information in the object code for use
by source-level debuggers.
|
OFF |
-H |
Print "include" file order; don't compile. |
OFF |
-help |
Prints compiler options summary. |
OFF |
-Idirectory
|
Specifies an additional directory to
search for include files.
|
OFF |
-i_dynamic |
Link Intel provided libraries dynamically. |
OFF |
-inline_debug_info |
Preserve the source position of inlined code instead of assigning the
call-site source position to inlined code. |
OFF |
-ip |
Enables interprocedural optimizations for single file compilation.
|
OFF |
-IPF_fma[-]
Itanium-based
systems only |
Enable [disable] the combining of floating-point multiplies and add/subtract
operations. |
OFF |
-IPF_fltacc[-]
Itanium-based
systems only |
Enable [disable] optimizations that affect floating-point accuracy. |
OFF |
-IPF_flt_eval_method0
Itanium-based
systems only |
Floating-point operands evaluated to the precision indicated by the
program. |
OFF |
-IPF_fp_speculationmode
Itanium-based
systems only |
Enable floating-point speculations with the following mode conditions:
- fast - speculate floating-point
operations
- safe - speculate only when
safe
- strict - same as off
- off - disables speculation
of floating-point operations
|
OFF |
-ip_no_inlining |
Disables inlining that would result from the -ip
interprocedural optimization, but has no effect on other interprocedural
optimizations.
|
OFF |
-ip_no_pinlining |
Disable partial inlining. Requires -ip or -ipo. |
OFF |
-ipo |
Enables interprocedural optimizations across files.
|
OFF |
-ipo_c |
Generates a multifile object file (ipo_out.o)
that can be used in further link steps.
|
OFF |
-ipo_obj |
Forces the compiler to create real object files when used
with -ipo.
|
OFF |
-ipo_S |
Generates a multifile assembly file named ipo_out.s
that can be used in further link steps.
|
OFF |
-ivdep_parallel
Itanium-based
systems only |
This option indicates there is absolutely no loop-carried memory dependency
in the loop where IVDEP directive is specified.
|
OFF |
-Kc++ |
Compile all source or unrecognized file types as C++ source files. |
OFF |
-Kc++eh |
Enable C++ exception handling. |
ON |
-Knopic, -KNOPIC
Itanium-based
systems only |
Don't generate position independent code. |
OFF |
-KPIC, -Kpic |
Generate position independent code. |
OFF for IA-32
ON for Itanium-based systems |
-Ldirectory
|
Instruct linker to search directory
for
libraries.
|
OFF |
-long_double
IA-32 only |
Changes the default size of the long double data type from
64 to 80 bits.
|
OFF |
-M |
Generates makefile dependency lines for each source file,
based on the #include lines found in the source
file. |
OFF |
-mp |
Favors conformance to the ANSI C and IEEE 754 standards for
floating-point arithmetic. |
OFF |
-mp1 |
Improve floating-point precision (speed impact is less than
-mp).
|
OFF |
-nobss_init |
Places variables that are initialized with zeroes in the
DATA section. Disables placement of zero-initialized variables in BSS
(use DATA).
|
OFF |
-no_cpprt |
Do not link in C++ run time libraries. |
OFF |
-nolib_inline |
Disables inline expansion of standard library functions.
|
OFF |
-nostartfiles |
Do not use standard startup files when linking. |
OFF |
-nostdlib |
Do not use standard libraries and startup files when linking. |
OFF |
-O |
Same as -O1 on IA-32. Same as -O2
on Itanium-based systems. |
OFF |
-O0 |
Disables optimizations.
|
OFF |
-O1 |
Enable optimizations. Optimizes for speed. For Itanium
compiler, -O1 turns off software pipelining to
reduce code size.
|
OFF |
-O2 |
Same as -O1 on IA-32. Same as -O on Itanium-based systems.
|
ON |
-O3 |
Enable -O2 plus more aggressive optimizations
that may
increase the compilation time. Impact on performance is application dependent,
some applications may not see a performance improvement.
|
OFF |
-ofile
|
Name output file . |
OFF |
-openmp |
Enables the parallelizer to generate multi-threaded code
based on the OpenMP* directives. The -openmp option
only works at an optimization level of -O2 (the
default) or higher.
|
OFF |
-openmp_report{0|1|2} |
Controls the OpenMP* parallelizer's diagnostic levels.
|
-openmp_report1 |
-openmpP |
Same as openmp (parallel). |
|
-openmpS |
Enables the user to compile OpenMP* programs in sequential mode. The
openmp directives are ignored, and a stub OpenMP library is linked (sequential). |
|
-opt_report |
Generates an optimization report directed to stderr, unless -opt_report_file
is specified. |
OFF |
-opt_report_filefilename |
Specifies the filename for the optimization
report. It is not necessary to invoke -opt_report
when this option is specified. |
OFF |
-opt_report_level[level] |
Specifies the verbosity level
of the output. Valid level
arguments:
If a level is not specified, min
is used by default. |
OFF |
-opt_report_phasename |
Specifies the compilation phase for which
reports are generated. The option can be used multiple times in the same
compilation to get output from multiple phases.
Valid phase arguments:
- ipo: Interprocedural Optimizer
- hlo: High Level Optimizer
- ilo: Intermediate Language
Scalar Optimizer
- ecg: Electron Code Generator
- omp: OpenMP*
- all: All phases
|
OFF |
-opt_report_routinesubstring |
Specifies a routine substring.
Reports from all routines with names that include substring as part of the name are
generated. By default, reports for all routines are generated. |
OFF |
-opt_report_help |
Displays all possible settings for -opt_report_phase.
No compilation is performed. |
OFF |
-P, -F |
Stops the compilation process after C or C++ source files have been
preprocessed and writes the results to files named according to the compiler's
default file-naming conventions.
|
OFF |
-parallel |
Detects parallel loops capable of being executed safely in parallel
and automatically generates multithreaded code for these loops. |
|
-par_report{0|1|2|3} |
Controls the auto-parallelizer's diagnostic levels 0, 1, 2, or 3 as
follows:
- -par_report0: no diagnostic
information is displayed.
- -par_report1: indicates loops
successfully auto-parallelized (default).
- -par_report2: loops successfully
and unsccessfully auto-parallelized.
- -par_report3: same as 2 plus
additional information about any proven or assumed dependences inhibiting
auto-parallelization.
|
OFF |
-par_threshold[n] |
Sets a threshold for the auto-parallelization of loops based on the
probability of profitable execution of the loop in parallel, n=0
to 100. This option is used for loops whose computation work volume cannot
be determined at compile time.
- -par_threshold0: loops get
auto-parallelized regardless of computation work volume.
- -par_threshold100: loops
get auto-parallelized only if profitable parallel execution is almost
certain.
|
OFF |
-pc32
IA-32 only |
Set internal FPU precision to 24-bit significand. |
OFF |
-pc64
IA-32 only |
Set internal FPU precision to 53-bit significand. |
ON |
-pc80
IA-32 only |
Set internal FPU precision to 64-bit significand. |
OFF |
-prec_div
IA-32 only |
Disables the floating point division-to-multiplication optimization.
Improves precision of floating-point divides.
|
OFF |
-prof_dir dirname
|
Specify the directory (dirname )
to hold profile information (*.dyn, *.dpi).
|
OFF |
-prof_file filename
|
Specify the
filename
for
profiling summary file.
|
OFF |
-prof_gen[x] |
Instruments the program to prepare for instrumented execution
and also creates a new static profile information file (.spi
). With the x qualifier, extra information is
gathered.
|
OFF |
-prof_use |
Uses dynamic feedback information.
|
OFF |
-Qansi[-]
Itanium-based
systems only |
Enable [disable] stating ANSI compliance of the compiled
program and that optimizations can be based on the ANSI rules. |
ON |
-Qinstall dir
|
Sets dir as
root of compiler installation. |
OFF |
-Qlocation,tool,path |
Sets path as
the location of the tool specified by tool
.
|
OFF |
-Qoption,tool,list |
Passes an argument list to
another tool
in
the compilation sequence, such as the assembler or linker.
|
OFF |
-qp, -p |
Compile and link for function profiling with UNIX* prof
tool |
OFF |
-rcd
IA-32 only |
Disables changing of the FPU rounding control. Enables fast float-to-int
conversions.
|
OFF |
-restrict |
Enables pointer disambiguation with the
restrict qualifier. |
OFF |
-S |
Generates assembly files with .s
suffix, then stops the compilation.
|
OFF |
-shared |
Produce a shared object. |
OFF |
-size_lp64
Itanium-based
systems only |
Assume 64-bit size for long and pointer types. |
OFF |
-sox[-]
IA-32 only |
Enables [disables] the saving of compiler options and version
information in the executable file. NOTE: This option is maintained for
compatibility only on Itanium(TM)-based systems. |
ON |
-static |
Prevents linking with shared libraries. |
OFF |
-syntax |
Checks the syntax of a program and stops the compilation process after
the C or C++ source files and preprocessed source files have been parsed.
Generates no code and produces no output files. Warnings and messages
appear on stderr.
|
OFF |
-tpp5
IA-32 only |
Targets the optimizations to the Intel®
Pentium®
processor.
|
OFF |
-tpp6
IA-32 only |
Targets the optimizations to the Intel Pentium Pro, Pentium
II and Pentium III processors.
|
ON (IA-32)
OFF(Itanium-based systems) |
-tpp7
IA-32 only |
Tunes code to favor the Intel Pentium 4 processor.
|
OFF |
-Uname |
Suppresses any definition of a macro name
. Equivalent to a #undef preprocessing
directive.
|
OFF |
-unroll0
Itanium-based
systems only |
Disable loop unrolling.
|
OFF |
-unroll[n]
IA-32 only |
Set maximum number of times to unroll loops. Omit n to use default heuristics.
Use n =0 to disable loop unroller.
|
OFF |
-use_asm |
Produce objects through assembler. |
OFF |
-use_msasm
IA-32 only |
Accept the Microsoft* MASM-style inlined assembly format instead of
GNU-style. |
OFF |
-u symbol |
Pretend the symbol is defined. |
OFF |
-V |
Display compiler version information. |
OFF |
-vec[-]
IA-32 only |
Enable [disable] the vectorizer. |
ON |
-vec_report[n]
IA-32 only |
Controls the amount of vectorizer diagnostic information.
- n =0 no
diagnostic information
- n =1 indicates
vectorized loops (DEFAULT)
- n =2 indicates
vectorized/non-vectorized loops
- n =3 indicates
vectorized/non-vectorized loops and prohibiting data dependence information
- n =4 indicates
non-vectorized loops
- n =5 indicates
non-vectorized loops and prohibiting data
|
-vec_report1 |
-w |
Disable all warnings. |
OFF |
-wn
|
Control diagnostics.
- n =0 displays
errors (same as -w)
- n =1 displays
warnings and errors (DEFAULT)
- n =2 displays
remarks, warnings, and errors
|
OFF |
-wdL1[,L2,...] |
Disables diagnostics L1 through LN.
|
OFF |
-weL1[,L2,...] |
Changes severity of diagnostics L1
through LN to error.
|
OFF |
-wnn |
Limits the number of errors displayed prior to aborting compilation
to n .
|
n=100 |
-wp_ipo |
Compile all objects over entire program with multifile interprocedural
optimizations. This option additionally makes the whole program assumption
that all variables and functions seen in compiled sources are referenced
only within those sources; the user must guarantee that this assumption
is safe.
|
OFF |
-wrL1[,L2,...] |
Changes the severity of diagnostics L1
through LN to remark.
|
OFF |
-wwL1[,L2,...] |
Changes severity of diagnostics L1
through LN to warning.
|
OFF |
-Wl,o1[,o2,...] |
Pass options o1, o2, etc. to the linker for processing. |
OFF |
-xtype |
All source files found subsequent to -xtype will be recognized as one of
the following types:
- c - C source file
- c++ - C++ source file
- c-header - C header file
- cpp-output - C preprocessed
file
- assembler - assembly file
- assembler-with-cpp - Assembly
file that needs to be preprocessed.
- none - Disable recognition
and revert to file extension.
|
OFF |
-X |
Removes the standard directories from the list of directories to be
searched for include files.
|
OFF |
-Xa |
Select extended ANSI C dialect. |
OFF |
-Xc, -ansi |
Select strict ANSI conformance dialect. |
OFF |
-x{i|M|K|W}
IA-32 only |
Generates specialized code to run exclusively on processors
supporting the extensions indicated by processor-specific codes i, M, K,
W.
- i = Pentium®
Pro and Pentium II processor instructions
- M = MMX(TM)
instructions
- K = streaming SIMD extensions
- W = Pentium 4 processor instructions
|
OFF |
-Xlinker val |
Pass val directly to the
linker for processing. |
OFF |
-Zp{1|2|4|8|16} |
Specifies the strictest alignment constraint for structure
and union types as one of the following: 1, 2, 4, 8, or 16 bytes.
|
-Zp16 |