Wednesday, January 13, 2016
Optimize resource sharing
Intel & amp; reg; C ++ Compiler help
==========================
Usage: icl [Options] Document 1 [File 2 ...] [/ link linker option]
Which options represent zero or more compiler options; fileN is C / C ++ source code (.c .cc .cpp .cxx .i), the assembler (.asm), the target file (.obj), a static-link library (.lib ), or other linked files; linker_options represent zero or more link options
Note
-----
1. supports most Microsoft & amp; reg; Visual C ++ & amp; # 8482; compiler options; most do not support option displays a warning. Exact behavior of the various options is not entirely consistent with the Microsoft Visual C ++ compiler options equally.
2.
Intel C ++ Compiler Options icl.cfg can be placed in your file.
3. Intel C ++ Compiler most special option / Q start:
(* I) indicates that its options are Intel C ++ Compiler unique
(* M) indicates that the option is supported
Microsoft Visual C ++ compiler
Compiler options list
--------------------
Performance Options
-----------
/ O1 maximize speed, but will disable some options to increase code size to get the minimum rate ascension: / Ob2gysi-
/ O2 maximize speed (default): / Ob2gyti
/ O3 maximize speed and enable advanced optimization
/ Ox enable full optimization
/ Od disable optimizations; commonly used in the selective optimization (for example, / Od / Og)
/ Fast is equivalent to / QxP / O3 / Qipo / Qprec-div-
/ Ob & lt; n & gt; inline expansion control:
n = 0 to disable inline expansion
n = 1 __inline extended declared as a function of the completion of C ++ inline task
n = 2 is determined by the compiler, you can extend any function (like / Qip)
/ Og enable global optimization
/ Oi [-] enable [prohibited] expanded inline function
/ Op [-] enable [prohibited] better floating-point precision
/ Os enable speed optimizations, but disable some options to increase code size to get the minimum speed improvement (covering / Ot)
/ Ot enable speed optimization (covered / Os)
/ Oy [-] enable [prohibited] using EBP as a general target register (no frame pointer)
/ Oa [-] assumes that the program is no alias
/ Ow [-] within the alias assumed no function, but assuming the alias call
/ Qax & lt; codes & gt; to & lt; codes & gt; specified processor generated code, but also to create generic IA-32 code.
& Lt; codes & gt; characters include one or more of the following:
K Intel Pentium III and compatible Intel processors
W Intel Pentium 4 and compatible Intel processors
N Intel Pentium 4 and compatible Intel processors. And enable Intel processor-specific new optimization method
P Intel Core & amp; # 8482; Duo processor, Intel Core & amp; # 8482; Solo processor,
Intel Pentium 4 and compatible Intel processor has SSE3 instructions support
B Intel Pentium M and compatible Intel processors
/ Qx & lt; codes & gt; generated only in & lt; codes & gt; code to run on the specified processor
./ Arch: {SSE | SSE2}
Respectively, equivalent to / QxK and / QxW
/ GR [-] Enable [disable] C ++ RTTI
/ Qcxx-features
Enable standard C ++ features (-GX -GR)
/ EHa enable asynchronous C ++ exception handler model
/ EHs enable synchronization C ++ exception handler model
/ Ehc assume that extern "C" functions do not throw exceptions
/ Qsafeseh [-]
Security registers abnormal operation (/Qvc7.1 above version is the default and)
/ Gd using __cdecl as the default calling convention
/ Gr use __fastcall calling convention as the default
/ Gz use __stdcall as the default calling convention
/ GF enable read-only string pool optimization
/ GA is a Windows application optimization (assuming .exe)
/ GS [-] enabled [disabled (default)] overflow checking
/ GT purifying enabled security thread-local storage
Advanced performance options
--------------------
Enable and specify interaction (IP) within the following range of optimization options:
/ Qip enable single-file IP optimizations (in a file inside, like / Ob2)
/ Qipo [n] to enable multi-file IP optimizations (between files)
/ Qipo-c generates more than one file object file (ipo_out.obj)
/ Qiop-S to generate a multi-file assembly file
IP behavior modification:
/ Qip-no-inlining whole or in part is prohibited inline (need / Qio or / Qipo)
/ Qip-no-ponlining prohibit partial inlining (requires / Qio or / Qipo)
/ Qipo-separate each source file to create a target program (covering / Qipo [n])
Other advanced performance options:
/ Qunroll [n] to set the maximum number of open loop. N omitted the default heuristic analysis.
Use n = 0 to block the opening loop
/ Qprof-dir & lt; d & gt; profiling specify where output files (* .dyn and * .dpi) directory
{Profiling generally refers to the program do performance testing}
/ Qprok-file & lt; f & gt; specify profiling summary file name
/ Qprof-gen [x] profiling utility programs; with x restrict collect additional information
as PROFORDER Tools/ Qprof-use instructions in the use of profiling information during optimization
/ Qfnsplit [-] enable [prohibited] Function split (with / Qprof-use together enabled)
/ Qprof-gen-sampling
Preparing together with the code
profrun sample collection tool
/ Qpc32 set the internal FPU precision 24 bit signed number
/ Qpc64 set the internal FPU precision 53 bit signed number (default)
/ Qpc80 set the internal FPU precision 64 bit signed number
/ QIfist [-] enabled [disabled (default)] fast floating point to integer conversion
/ Qrce equivalent / QIfist
/ Qprec improve floating-point precision (speed impact of less than / Op)
/ Qprec-div [-]
Improve the accuracy of the implementation of FP division (with some impact on the speed)
/ Qprec-sqrt [-]
Determine whether the square root optimization enabled
/ Qfp-port [-]
Follow the instructions rounded floating point result (with some impact on the speed)
After checking all the floating-point stack
/ Qfpstkchk enable each function call/ Qsfalign8 function variables on the stack by 8 or 16-byte aligned (default)
/ Qsfalign16 function variables on the stack by 16-byte aligned
/ Qsfalign force all functions stack alignment
/ Qsfalign- cancel all functions stack alignment
/ Gh call __penter function guide place; commonly
user profiling/ GH call __pexit at the end of a function; commonly
user profiling
/ Qscalar-rep [-] enabled (default) [disabled] scalar replacement (requires / O3)
/ Qvec-report [n] control vector quantity of diagnostic information:
n = 0 no diagnostic information
n = 1 marked vectorized loop (default)
n = 2 marked vector and not vectorized loop
n = 3 marked vector and not vectorized loop hinder data dependency information
n = 4 marked not vectorized loop
n = 5 marked not vectorized loop and hinder data dependency information
/ Qopt-report output optimization report to stderr
/ Qopt-report-file & lt; file & gt; Specify where to save the file name
Optimization Report/ Verbosity Qopt-report-level [level] Specifies the optimization reports (min | med | max)
/ Qopt-report-phase & lt; name & gt; specifies the stage to generate reports
/ Qopt-report-routine & lt; name & gt;
report on the program contained in the specified name of/ Qopt-report-help display the optimization phase can be used for reporting
/ Qtcheck for the detection of multi-threaded BUG generate tester
(Requires Intel (R) Thread Checker, should not be used alone on a compiler)
/ Qtprofile for the analysis of multi-threaded performance and generate test device
(Requires Intel (R) Thread Profiler, should not be used alone on a compiler)
/ Qopenmp allows the compiler to generate
OpenMP-based multi-thread encoding instructions/ Qopenmp-profile use OpenMP runtime library link guided to produce the OpenMP performance test information
For VTune (TM) Performance Analyzer for OpenMP debugging components using
/ Qopenmp-stubs allows users to compile serial OpenMP program.
OpenMP indication is ignored and a link to a brief OpenMP library.
/ Qopenmp-report {0 | 1 | 2} control diagnostic level
OpenMP parallel device/ Qparallel allows automatic parallel device safely cycle multithreading
/ Qpar-report {0 | 1 | 2 | 3} control automatic parallel diagnostics level
/ Qpar-threshold [n] is set to cycle automatically parallelized threshold. N is an integer values 0 through 100
/ Qalias-args [-] enabled (default) [prohibited] on C / C ++ functions can have the alias rule
If you disable this rule, its security guaranteed by the user.
/ Qansi-alias [-] enabled [disabled (default)] using the ANSI aliasing rules in optimizing them;
User assurance procedures follow these rules
/ Qcomplex-limited-range [-]
Enable [disable (default)] for some complex arithmetic using basic algebraic start.
For complex compute-intensive program enabled lose some accuracy in exchange for performance improvements
/ Qssp enable software-based speculative pre-computation
/ Qssp enable precomputation software-based speculative
/ Fp: & lt; name & gt; enabled & lt; name & gt; floating-point model variables:
except [-] - Enable [Cancel] floating-point semantics
double - rounding intermediate variable to 53-bit (double) precision
extended - rounding intermediate variable to 64-bit (extended) precision
fast [= 1 | 2] - Enable more brutal floating-point optimization
precise - to allow optimization of the value of the security
source - Enable intermediate variables applicable source accuracy
strict - Enable -fp: precise -fp: except, disables
Disable contraction, enable pragma stdc fenv_access
/ Qinline-min-size = & lt; n & gt;
Setting inline {small size of the lower limit of this program to be inline}
/ Qinline-min-size-
Inline size no lower
/ Qinline-max-size = & lt; n & gt;
Set within the size cap Inline {greater than this limit does not inline}
/ Qinline-max-size-
Inline program is not prepared
size/ Qinline-max-total-size = & lt; n & gt;
The maximum size of
inline expansion of all functions/ Qinline-max-total-size-
The maximum size of inline expansion of all functions unlimited
/ Qinline-max-per-routine = & lt; n & gt;
An inline function can extend the maximum size
/ Qinline-max-per-routine-
An inline function can extend the maximum size limit
/ Qinline-max-per-compile = & lt; n & gt;
The largest expansion of the number of times each compilation inline function
/ Qinline-max-per-compile-
Each time the largest expansion in the number of inline functions compiled unlimited
/ Qinline-factor = & lt; n & gt;
Expanded inline by setting an upper limit, expressed as a percentage
/ Qinline-factor-
Inline expansion is not set an upper limit
/ Qinline-forceinline
The inline function forces inline
Reply:
Output, debug, precompiled
------------------
/ C Compile only, producing an object file (.obj), do not link
/ S Compile only produce assembler file (.asm), not linked
/ FA [cs] produce assembler files, you can select the machine code or source file as comments
/ Fa [file] named assembly file (or directory to multiple files; if / FaMYDIR \)
/ Fo [file] name the target file (or directory to multiple files; if / FoMYDIR2 \)
/ Fe & lt; file & gt; executable file or directory name
/ Fp [file] name precompiled headers
/ Yc [hfile] create precompiled headers
/ Yu [hfile] using precompiled headers
/ YX enable automatic precompiled header file creation / use
/ Y- ignores all other precompiled headers option
/ Qpchi [-] enabled (default) [disabled] PCH coexist, to reduce the generation time
/ FD generate file dependencies
/ FR [file] name extension of a source file browser
/ Quse-asm [-] enabled [disabled (default)] using the assembler generates object code
/ RTC1 equivalent / RTCsu
Check
runtime stack frame / RTCs enabled/ RTCu report uses an uninitialized variable
/ RTCc enable the conversion to a smaller type type conversion checking
/ Zi, / Z7 generates symbolic debugging information in the object file
/ ZI is equivalent to the / Zi
/ Qinline-debug-info for inline procedures in place to protect the source code location inline canceled
use/ Debug [: keyword]
Enable debugging information and control the output enhanced debugging information.
keywords: all, full, minimal, none, inline-debug-info,
variable-locations, semantic-stepping, extended,
[No] expr-source-pos
/ Qtrapuv capture uninitialized variable
/ Qmap-opts allows you to select the imaging tool
Preprocessor
------------
/ C Do not discard comments
/ D & lt; name & gt; [{= | #} & lt; text & gt;] define a macro
/ QA & lt; name & gt; [(val)] to create a 'name' has 'val' assertion
/ QA [-] Remove all predefined macros
/ E preprocessed output to stdout
/ EP preprocessed output to stdout, ignored #line instruction
/ EP / P preprocessed output to a file, ignoring #line instruction
/ P preprocessed output to a file
/ FI & lt; file & gt; forced include file
/ I & lt; dir & gt; increase the directory that contains the file search path
/ QH print order
included files/ QM generate makefile include dependency, does not compile
/ QMM similar / QM, but it does not include system header files
/ QMG similar / QM, but it will be missing header files as compiled file
/ QMD preprocessing and compiling to generate an output file containing dependency information, extension .d
/ QMMD similar / QMD, but does not include system header files
/ QMF & lt; file & gt; generate makefile dependency information in the file (must be specified / QM or / QMM)
/ QMT & lt; target & gt; to depend on generators to change the default target rule
/ QdM and post-processed output macro definition (used in conjunction with -E)
/ QdD similar / QdM, but output #define instruction
after the processing document/ QdN similar / QdD, but #define instruction contains only macro names
/ U & lt; name & gt; removing the name macros
/ U Remove all predefined macros
/ X standard catalog
removed from the include file search path
Element control
-----------------
/ Qoption, & lt; str & gt;, & lt; opts & gt; Delivery Options & lt; opts & gt; to & lt; str & gt; tool specified
/ Qlocation, & lt; str & gt;, & lt; dir & gt; Settings & lt; dir & gt; as & lt; str & gt; specifies the default directory tool
Language
--------
/ J changes the default char type is unsigned
/ NoBool disable 'bool' keyword
/ Qc99 [-] enabled [disabled (default)] C99 support for the C language program
/ Qms [n] allows the compilation of some suspicious source
n = 0 to disable Microsoft compatibility vulnerability
n = 1 to enable the majority of Microsoft compatibility (default)
n = 2 fully Microsoft compatible
/ Qmspp [-] enabled (default) [disabled] Microsoft Visual C ++ 6.0 binary compatibility package
/ Qvc6 enable Visual C ++ 6.0-compatible (default)
/ Qvc7 enable Visual Studio .NET 2002 compatible
/Qvc7.1 Enable Visual Studio .NET 2003 compatible
/ Qvc8 enable Visual Studio 2005 compatible
/ Qrestrict [-] Enable [disable] 'restrict' keyword to eliminate ambiguity pointer
-Qtemplate-Depth & lt; n & gt;
Recursion depth
control template unfolded/ Za disable Microsoft Visual C ++ compiler language extensions
/ Zg enable function prototypes generated
/ Zp [n] specifies the structure alignment (n = 1,2,4,8,16; / Zp16 default)
/ Zs just inspector program syntax, not compile
/ Zc: arg1 [, arg2] consistent with the following parameters specified criteria:
forScope [-] standard mandatory for loop initialization behavior
wchar_t [-] Forced wchar_t data type is an internal
/ Vd {0 | 1} prohibit or allow vtordisp domain
in C ++ object implied/ Vm & lt; x & gt; indicates representation
C ++ pointer to a member of the
The compiler diagnostics
--------------------
/ W cancel all warnings
/ W0 Print only error
/ W1, / W2, / W3 print only error and warning (default)
/ W4, / Wall print errors, warnings, cautions
/ WL print a line diagnostic summary
/ WX forcibly warning report errors
/ Wcheck implement more stringent diagnostic
/ Wp64 Print 64 transplant diagnosis
/ Wport portability problem diagnosis
/ Qwn & lt; n & gt; n up to print error
/ Qwd & lt; L1 & gt; [, & lt; L2 & gt;, ...] prohibit diagnostic L1 to LN
/ Qwe & lt; L1 & gt; [, & lt; L2 & gt;, ...] diagnostic L1 to LN stringency changed to an error
/ Qcontext-limit & lt; n & gt;
Settings Diagnostics template to display the maximum number of context instances
/ Qww & lt; L1 & gt; [, & lt; L2 & gt;, ...] L1 to LN of the diagnosis was changed to strict warning
/ Qwr & lt; L1 & gt; [, & lt; L2 & gt;, ...] diagnostic L1 to LN stringency changed to prompt
Miscellaneous
-------------
/ ?, / Help print help information
/ Nologo not display compiler version information
/ Tc & lt; file & gt; will file as a C source program compilation
/ Tp & lt; file & gt; the file as C ++ source code to compile
/ TC all unknown types of files as C source program compilation
/ TP will all unknown types of files as C ++ source code to compile
/ Qsox [-] enabled [disabled (default)] to save the compiler options and version in the executable program
/ Qlong-double to enable 80-bit 'long double'
/ Qnobss-init ban placed by zero-initialized variables in BSS (use DATA)
/ Qglobal-hoist [-]
Enabled (default) [Prohibition] is safe to load external global variables
/ ShowIncludes display the file name contains
/ Qmultibyte-chars [-]
Providing multi-byte character support
Links / Linker
--------------
/ Link indicating that subsequent all options passed to the linker
/ F & lt; n & gt; to the linker to set the total number of reserved stack
/ LD, / LDd generate DLL instead of EXE ('d' = debug version)
/ MD, / MDd loaded dynamically multithreaded C runtime library
/ ML, / MLd using static load single-threaded C runtime library (/ ML is the default)
/ MT, / MTd using the static load multithreaded C runtime library
/ Zl remove a library from the target file name
Copyright & amp; copy; 1985-2006, Intel company. All rights reserved.
* Other brands and names belong to their respective owners.
Reply:
Translation of myself, turn bad, fallible, welcome criticism.
Reply:
We want to engage in this bilingual, but CSND limit the length of even pure Chinese have made two points.
Please see the English help icl / help
Reply:
Thank you
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment