man pages for icc
NAME
icc - Intel(R) C++ Compiler
SYNOPSIS
icc [options] file1 [file2 ...]
where fileN is a C/C++ source (.C .c .cc .cpp .cxx .i), assembly (.s),
object (.o), static library (.a), or other linkable file
NOTE: Commonly used options may be placed in the icc.cfg file.
DESCRIPTION
Intel(R) C++ Compiler Options. This compiler is designed to preprocess,
compile, assemble, and link C and C++ programs on IA-32 systems.
Compiler Option List
Performance
-O1 Enable optimizations
-O2 Same as -O1 (DEFAULT)
-O3 Enable -O2 plus more aggressive optimizations that may
not improve performance for all programs
-O0 Disable optimizations
-O Same as -O1
-Ob Control inline expansion:
n=0 -- Disables inlining
n=1 -- Inline functions declared with __inline, and per-
form C++ inlining
n=2 -- Inline any function, at the compiler’s discretion
(same as -ip)
-falias Assume aliasing in program (DEFAULT)
-fno-alias Assume no aliasing in program
-nolib_inline Disable inline expansion of intrinsic functions
-mp Maintain floating point precision (disables some opti-
mizations)
-mp1 Improve floating-point precision (speed impact is less
than -mp)
-fp Disable using EBP as general purpose register
-prec_div Improve precision of floating-point divides (some speed
impact)
-fp_port Round fp results at assignments & casts (some speed
impact)
-pc32 Set internal FPU precision to 24 bit significand
-pc64 Set internal FPU precision to 53 bit significand
(DEFAULT)
-pc80 Set internal FPU precision to 64 bit significand
-rcd Enable fast float-to-int conversions
-tpp5 Optimize for Pentium(R) processor
-tpp6 Optimize for Pentium(R) Pro, Pentium(R) II and Pen-
tium(R) III processors
-tpp7 Optimize for Pentium(R) 4 processor
-ax Generate code specialized for processor extensions spec-
ified by while also generating generic IA-32
code. includes one or more of the following
characters:
i -- Pentium Pro and Pentium II processor instructions
M -- MMX(TM) instructions
K -- Streaming SIMD Extensions
W -- Pentium(R) 4 New Instructions
-x Generate specialized code to run exclusively on proces-
sors supporting the extensions indicated by as
described above.
-march= Generate code excusively for a given
pentiumpro -- Pentium(R) Pro and Pentium(R) II processor
instructions
pentiumii -- MMX(TM)instructions
pentiumiii -- Streaming SIMD Extensions
pentium4 -- Pentium(R) 4 New Instructions
-mcpu= Optimize for a specific cpu
pentium -- Optimize for Pentium(R) processor
pentiumpro -- Optimize for Pentium(R) Pro, Pentium(R) II
and Pentium(R) III processors
pentium4 -- Optimize for Pentium(R) 4 processor
Advanced Performance
Enable and specify the scope of Interprocedural (IP) Optimizations:
-ip Enable single-file IP optimizations (within files)
-ipo Enable multi-file IP optimizations (between files)
-ipo_c Generate a multi-file object file (ipo_out.o)
-ipo_S Generate a multi-file assembly file (ipo_out.s)
Modify the behavior of IP:
-ip_no_inlining
Disable full and partial inlining (requires -ip or -ipo)
-ip_no_pinlining
Disable partial inlining (requires -ip or -ipo)
-ipo_obj Force generation of real object files (requires -ipo)
Other Advanced Performance Options:
-unroll[n] Set maximum number of times to unroll loops. Omit n to
use default heuristics. Use n=0 to disable loop
unroller.
-prof_dir Specify directory for profiling output files (*.dyn and
*.dpi)
-prof_file Specify file name for profiling summary file
-prof_gen[x] Instrument program for profiling; with the x qualifier,
extra information is gathered
-prof_use Enable use of profiling information during optimization
-qp, -p, -pg Compile and link for function profiling with UNIX prof
tool
-vec Enable(DEFAULT) the vectorizer
-vec_report[n] Control amount of vectorizer diagnostic information:
n=0 -- No diagnostic information
n=1 -- Indicate vectorized loops (DEFAULT)
n=2 -- Indicate vectorized/non-vectorized loops
n=3 -- Indicate vectorized/non-vectorized loops and pro-
hibiting data dependence information
n=4 -- Indicate non-vectorized loops
n=5 -- Indicate non-vectorized loops and prohibiting
data dependence information
-opt_report Generate an optimization report to stderr
-opt_report_file
Specify the filename for the generated report
-opt_report_level[level]
Specify the level of report verbosity (min|med|max)
-opt_report_phase
Specify the phase that reports are generated against
-opt_report_routine
Reports on routines containing the given name
-opt_report_help
Display the optimization phases available for reporting
-openmp Enable the compiler to generate multi-threaded code
based on the OpenMP directives
-openmp_stubs Enables the user to compile OpenMP programs in sequen-
tial mode. The openmp directives are ignored and a stub
OpenMP library is linked (sequential)
-openmp_report{0|1|2}
Control the OpenMP parallelizer diagnostic level
-parallel Enable the auto-parallelizer to generate multi-threaded
code for loops that can be safely executed in parallel
-par_report{0|1|2|3}
Control the auto-parallelizer diagnostic level
-par_threshold[n]
Set threshold for the auto-parallelization of loops
where n is an integer from 0 to 100
-ansi_ansi[-] Enable(DEFAULT)[disable] stating ANSI compliance of the
compiled program and that optimizations can be based on
the ANSI rules
Output, Debug
-c Compile to object (.o) only, do not link
-S Compile to assembly (.s) only, do not link (*I)
-use_asm Produce objects through assembler
-use_msasm Support Microsoft style assembly language insertion
using MASM style syntax and, if requested, output assem-
bly in MASM format
-o Name output file
-g Produce symbolic debug information in object file
-inline_debug_info
Preserve the source position of inlined code instead of
assigning the call-site source position to inlined code
C Preprocessor
-A[(val)]
Create an assertion ’name’ having value ’val’
-A- Remove all predefined macros
-C Don’t strip comments
-D[{=|#}]
Define macro
-E Preprocess to stdout
-EP Preprocess to stdout omitting #line directives
-P, -F Preprocess to file
-I Add directory to include file search path
-U Remove predefined macro
-X Remove standard directories from include file search
path
-H Print "include" file order and continue compilation.
-M Generate makefile dependency information
-MD Preprocess and compile. Generate output file (.d exten-
sion) containing dependency information.
-MF Generate makefile dependency information in . Must
specify -M or -MM.
-MG Similar to -M, but treats missing header files as gener-
ated files.
-MM Similar to -M, but does not include system header files.
-MMD Similar to -MD, but does not include system header
files.
-MX Generate dependency file (.o.dep extension) containing
information used for the Intel wb tool.
-MM Similar to -M, but do not include system header files
-MG Similar to -M, but treat missing header files as gener-
ated files
-MD Preprocess and compile, generating output file contain-
ing dependency information ending with extension .d
-MMD Similar to -MD, but do not include system header files
-MF Generate makefile dependency information in file (must
specify -M or -MM)
-MX Generate dependency file ending with extension .o.dep
containing information used for the Intel wb tool
-dM Output macro definitions in effect after preprocessing
(use with -E)
-idirafter
Add directory (dir) to the second include file search
path (after -I)
Component Control
-Qoption,,
Pass options to tool specified by
-Qlocation,,
Set as the location of tool specified by
-Qinstall
Set as root of compiler installation
Language
-ansi Enable(DEFAULT) assumption of ANSI conformance
-restrict Enable the ’restrict’ keyword for disambiguating point-
ers
-Xa Select extended ANSI C dialect
-Xc Select strict ANSI conformance dialect
-c99[-] Enable(DEFAULT) [disable] C99 support for C programs
-std=c99 Enable C99 support for C programs.
-XU C++ compilation follows ARM and cfront with anachronisms
-Timplinc Enable implicit inclusion of source files for finding
template defs
-Tnoauto Disable automatic instantiation of templates
-Tused Instantiate template functions used in this compilation
-Tlocal Instantiate template functions used in this compilation,
make local
-Knovtab Suppress definition of vftables for classes without non-
inline vfns
-Kc++ Compile all source or unrecognized file types as C++
source files
-Krtti Enable C++ RTTI (DEFAULT)
-Zp[n] Specify alignment constraint for structures
(n=1,2,4,8,16)
-syntax Perform syntax check only
-fno-rtti Disable RTTI support
-fshort-enums Allocate as many bytes as needed for enumerated types
-fsyntax-only Same as -syntax
-funsigned-char
Change default char type to unsigned
-funsigned-bitfields
Change default bitfield type to unsigned
Compiler Diagnostics
-w Disable all warnings
-w Control diagnostics:
n=0 -- Display errors (same as -w)
n=1 -- Display warnings and errors (DEFAULT)
n=2 -- Display remarks, warnings, and errors
-wn Print a maximum of n errors
-wd[,,...]
Disable diagnostics L1 through LN
-we[,,...]
Change severity of diagnostics L1 through LN to error
-ww[,,...]
Change severity of diagnostics L1 through LN to warning
-wr[,,...]
Change severity of diagnostics L1 through LN to remark
-Wall Enable all warnings
-Werror Force warnings to be reported as errors
Miscellaneous
-help Prints list of compiler options
-V Display compiler version information
-sox[-] Enable(DEFAULT) [disable] saving of compiler options and
version in the executable
-Kpic, -KPIC Generate position independent code
-long_double Enable 80-bit ’long double’
-nobss_init Disable placement of zero-initialized variables in BSS
(use DATA)
-0f_check Enable the patch for the Pentium 0f erratum
-v Show driver tool commands and execute tools
Linking/Linker
-L Instruct linker to search for libraries
-i_dynamic Link Intel provided libraries dynamically
-no_cpprt Do not link in C++ runtime libraries
-nodefaultlibs Do not use standard libraries when linking
-nostartfiles Do not use standard startup files when linking
-nostdlib Do not use standard libraries and startup files when
linking
-static Prevents linking with shared libraries
-shared Produce a shared object
-u Pretend the is undefined
-Xlinker Pass directly to the linker for processing
-Wl,[,,...]
Pass options o1, o2, etc. to the linker for processing
-dynamic-linker
Selects a dynamic linker (filename) other than the
default