Intel(R) C++ Compiler Help ========================== usage: icc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .i), assembly (.s), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the icc.cfg file. Compiler Option List -------------------- Performance ----------- -O1 enable optimizations (DEFAULT) -O2 same as -O1 -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 perform C++ inlining n=2 inline any function, at the compiler's discretion (same as -Qip) -falias assume aliasing in program (DEFAULT) -fno-alias assume no aliasing in program -ffnalias assume aliasing within functions (DEFAULT) -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib_inline disable inline expansion of intrinsic functions -mp maintain floating point precision (disables some optimizations) -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 -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -rcd rounding mode to enable fast float-to-int conversions -tpp5 optimize for Pentium(R) processor -tpp6 optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors -tpp7 optimize for Pentium(R) 4 processor (DEFAULT) -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 (DEFAULT) -ax generate code specialized for processor extensions specified 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 processors 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 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 compile and link for function profiling with UNIX gprof tool -p same as -qp -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 prohibiting 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 -tcheck generate instrumentation to detect multi-threading bugs (requires Intel(R) Threading Tools; cannot be used with compiler alone) -openmp enable the compiler to generate multi-threaded code based on the OpenMP directives -openmp_profile link with instrumented OpenMP runtime library to generate OpenMP profiling information for use with the OpenMP component of the VTune(TM) Performance Analyzer -openmp_stubs enables the user to compile OpenMP programs in sequential 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_alias[-] enable/disable(DEFAULT) use of ANSI aliasing rules in optimizations; user asserts that the program adheres to these rules -complex_limited_range[-] enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. 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 -fcode-asm produce assembly file with optional code annotations (requires -S) -fsource-asm produce assembly file with optional code annotations (requires -S) -f[no]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -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 omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -U remove predefined macro -X remove standard directories from include file search path -H print include file order -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing 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) 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 -------- -[no]restrict enable/disable the 'restrict' keyword for disambiguating pointers -Xa select extended ANSI C/C++ dialect (DEFAULT) -Xc, -ansi select strict ANSI C/C++ conformance dialect -c99[-] enable(DEFAULT)/disable C99 support for C programs -std=c99 enable C99 support for C programs -Kc++ compile all source or unrecognized file types as C++ source files -fno-rtti disable RTTI support -[no]align analyze and reorder memory layout for variables and arrays -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16) -syntax perform syntax and semantic checking only (no object file produced) -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 -Werror force warnings to be reported as errors -Wall enable all warnings Miscellaneous ------------- -help print this help message -V display compiler version information -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -x all source files found subsequent to -x will be recognized as one of the following types: c - C source file c++ - C++ source file c-header - C header file cpp-output - C pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - disable recognition, and revert to file extension -sox[-] enable/disable(DEFAULT) saving of compiler options and version in the executable -Kpic, -KPIC generate position independent code -fpic, -fPIC 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 Linking/Linker -------------- -L instruct linker to search for libraries -i_dynamic link Intel provided libraries dynamically -dynamic-linker select dynamic linker other than the default -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 -static-libcxa link Intel libcxa C++ library statically -shared-libcxa link Intel libcxa C++ library dynamically, overrides the default -u pretend the is undefined -Xlinker pass directly to the linker for processing -Wl,[,,...] pass options o1, o2, etc. to the linker for processing Copyright (C) 1985-2004, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners.