1894
Intel ® C++ Compiler User and Reference Guides Document number: 304968-023US

Main Cls Lin

Embed Size (px)

Citation preview

Intel C++ Compiler User and Reference Guides

Document number: 304968-023US

ContentsLegal Information........................................................................41 Getting Help and Support.............................................................43 Chapter 1: IntroductionIntroducing the Intel(R) C++ Compiler................................................45 Notational Conventions......................................................................45 Related Information...........................................................................48

Part I: Building Applications Chapter 2: Overview: Building ApplicationsIntroduction to the Compiler.......................................................53 Compilation Phases...................................................................54 Default Behavior of the Compiler.................................................54 Default Output Files..................................................................54 Using Compiler Options.............................................................55 Saving Compiler Information in Your Executable............................59

Chapter 3: Building Applications with Eclipse*Overview: Eclipse Integration.....................................................61 Multi-version Compiler Support...................................................62 Starting Eclipse........................................................................62 Creating a Simple Project...........................................................63 Creating a New Project......................................................63 Adding a C Source File......................................................65

3

Intel C++ Compiler User and Reference Guides

Building a Project.......................................................66 Running a Project.......................................................66 Intel Error Parser.......................................................67 Setting Properties......................................................68 Updating a Project..............................................................71 Updating an Existing Intel C++ Compiler Project...........71 Updating a GCC* Project to Use the Intel C++ Compiler...............................................................73 Make Files.........................................................................77 Project Types and Makefiles.........................................77 Exporting Makefiles....................................................78 Using Intel(R) Performance Libraries.....................................82

Chapter 4: Building Applications from the Command LineInvoking the Compiler from the Command Line......................85 Invoking the Compiler from the Command Line with make.......86 Passing Options to the Linker...............................................87 Compiler Input Files............................................................88 Output Files.......................................................................89 Specifying Compilation Output.............................................89 Specifying Executable Files..........................................89 Specifying Object Files................................................90 Specifying Assembly Files............................................90 Specifying Alternate Tools and Paths.....................................90 Using Precompiled Header Files............................................91 Compiler Option Mapping Tool..............................................94 Open Source Tools..............................................................96

Chapter 5: Using Preprocessor OptionsAbout Preprocessor Options.................................................97 Using Options for Preprocessing...........................................98 Using Options to Define Macros............................................99

4

Contents

Chapter 6: Modifying the Compilation EnvironmentAbout Modifying the Compilation Environment......................101 Setting Environment Variables............................................101 Using Configuration Files....................................................104 Specifying Include Files.....................................................105 Using Response Files.........................................................106

Chapter 7: DebuggingUsing the Debugger..........................................................107 Preparing for Debugging....................................................107 Symbolic Debugging and Optimizations................................107 Using Options for Debug Information...................................108

Chapter 8: Creating and Using LibrariesOverview: Using Libraries..................................................111 Default Libraries...............................................................111 Managing Libraries............................................................112 Creating Libraries.............................................................113 Using Intel Shared Libraries...............................................115 Compiling for Non-shared Libraries......................................115 Overview: Compiling for Non-shared Libraries..............115 Global Symbols and Visibility Attributes.......................116 Symbol Preemption...................................................117 Specifying Symbol Visibility Explicitly..........................118 Other Visibility-related Command-line Options..............119

Chapter 9: gcc* Compatibilitygcc Compatibility..............................................................121 gcc* Interoperability.........................................................125 gcc Interoperability...................................................125 Compiler Options for Interoperability...........................125 Predefined Macros for Interoperability.........................128

5

Intel C++ Compiler User and Reference Guides

gcc Built-in Functions................................................129 Thread-local Storage.................................................130

Chapter 10: Language ConformanceConformance to the C Standard..........................................133 Conformance to the C++ Standard.....................................133 Exported Templates..........................................................133 Template Instantiation.......................................................136

Chapter 11: Porting ApplicationsOverview: Porting Applications...........................................137 Modifying Your makefile.....................................................138 Equivalent Macros.............................................................140 Equivalent Environment Variables.......................................144 Other Considerations.........................................................144 Porting from GNU gcc* to Microsoft Visual C++*...................147

Chapter 12: Error HandlingRemarks, Warnings, and Errors...........................................149 Using Source Code Verification...........................................152 Source Checker Overview..........................................152 Interprocedural Analysis............................................159 Local Program Analysis..............................................161 C/C++ Specific Analysis............................................162 Fortran-Specific Analysis............................................163 OpenMP* Analysis....................................................164

Chapter 13: ReferenceANSI Standard Predefined Macros.......................................169 Additional Predefined Macros..............................................169

Part II: Compiler OptionsOverview: Compiler Options.......................................................176

6

Contents

New Options....................................................................177 Deprecated and Removed Compiler Options.........................192

Chapter 14: Alphabetical Compiler OptionsCompiler Option Descriptions and General Rules...................201 A A, QA......................................................................204 A-, QA-...................................................................205 alias-args................................................................206 alias-const, Qalias-const............................................207 align.......................................................................209 ansi........................................................................210 ansi-alias, Qansi-alias...............................................211 Ap64......................................................................212 arch........................................................................213 As..........................................................................215 auto-ilp32, Qauto-ilp32.............................................216 ax, Qax...................................................................217 B B............................................................................220 Bdynamic................................................................222 bigobj.....................................................................223 Bstatic....................................................................224 C c............................................................................225 C............................................................................226 c99, Qc99................................................................227 check-uninit.............................................................228 complex-limited-range, Qcomplex-limited-range...........229 cxxlib......................................................................230 D D...........................................................................232

7

Intel C++ Compiler User and Reference Guides

dD, QdD..................................................................233 debug (Linux* OS and Mac OS* X).............................234 debug (Windows* OS)...............................................237 diag, Qdiag..............................................................240 diag-dump, Qdiag-dump............................................245 diag, Qdiag..............................................................246 diag-enable sc-include, Qdiag-enable:sc-include...........251 diag-enable sc-parallel, Qdiag-enable:sc-parallel..........252 diag-error-limit, Qdiag-error-limit...............................254 diag-file, Qdiag-file...................................................255 diag-file-append, Qdiag-file-append............................257 diag-id-numbers, Qdiag-id-numbers............................258 diag-once, Qdiag-once..............................................260 dM, QdM.................................................................261 dN, QdN..................................................................262 dryrun....................................................................263 dumpmachine..........................................................264 dumpversion............................................................265 dynamic-linker.........................................................266 dynamiclib...............................................................267 E E............................................................................268 early-template-check................................................269 EH..........................................................................270 EP..........................................................................271 export.....................................................................272 export-dir................................................................273 F F (Mac OS* X).........................................................274 F (Windows*)..........................................................275 Fa..........................................................................276 FA..........................................................................277

8

Contents

fabi-version.............................................................278 falias......................................................................279 falign-functions, Qfnalign...........................................280 falign-stack.............................................................281 alias-args................................................................283 fargument-noalias-global...........................................284 fasm-blocks.............................................................285 fast........................................................................286 fast-transcendentals, Qfast-transcendentals.................288 fbuiltin, Oi...............................................................289 FC..........................................................................290 fcode-asm...............................................................291 fcommon.................................................................292 FD..........................................................................294 Fe..........................................................................295 fexceptions..............................................................296 ffnalias....................................................................297 ffreestanding, Qfreestanding......................................298 ffunction-sections.....................................................299 FI...........................................................................300 finline.....................................................................301 finline-functions.......................................................302 finline-limit..............................................................303 finstrument-functions, Qinstrument-functions...............304 fixed.......................................................................306 fjump-tables............................................................307 fkeep-static-consts, Qkeep-static-consts......................308 Fm.........................................................................309 fma, Qfma...............................................................310 fmath-errno.............................................................312 fminshared..............................................................313 fmudflap.................................................................314

9

Intel C++ Compiler User and Reference Guides

fno-gnu-keywords....................................................315 fno-implicit-inline-templates......................................316 fno-implicit-templates...............................................317 fno-operator-names..................................................318 fno-rtti....................................................................318 fnon-call-exceptions..................................................319 fnon-lvalue-assign....................................................320 fnsplit, Qfnsplit.........................................................321 Fo..........................................................................323 fomit-frame-pointer, Oy.............................................324 fp-model, fp.............................................................325 Fp..........................................................................333 fp-model, fp.............................................................334 fp-port, Qfp-port......................................................341 fp-relaxed, Qfp-relaxed.............................................342 fp-speculation, Qfp-speculation..................................343 fp-stack-check, Qfp-stack-check ................................345 fpack-struct.............................................................346 fpascal-strings.........................................................347 fpermissive..............................................................348 fpic.........................................................................348 fpie........................................................................350 Fr...........................................................................351 FR..........................................................................352 fr32........................................................................353 freg-struct-return.....................................................354 fshort-enums...........................................................355 fsource-asm............................................................356 fstack-security-check, GS..........................................357 fstack-security-check, GS..........................................358 fsyntax-only............................................................359 ftemplate-depth, Qtemplate-depth..............................360

10

Contents

ftls-model................................................................361 ftrapuv, Qtrapuv.......................................................362 ftz, Qftz..................................................................363 func-groups.............................................................366 funroll-loops............................................................366 funroll-all-loops........................................................366 funsigned-bitfields....................................................367 funsigned-char.........................................................368 fverbose-asm...........................................................369 fvisibility.................................................................370 fvisibility-inlines-hidden.............................................373 G g, Zi, Z7..................................................................374 g0..........................................................................375 G2, G2-p9000..........................................................376 G5, G6, G7..............................................................378 GA..........................................................................380 gcc.........................................................................381 gcc.........................................................................382 gcc-name................................................................383 gcc-version..............................................................385 Gd..........................................................................386 gdwarf-2.................................................................387 Ge..........................................................................388 Gf..........................................................................389 GF..........................................................................390 Gh..........................................................................391 GH.........................................................................392 Gm.........................................................................393 global-hoist, Qglobal-hoist.........................................394 Gr..........................................................................395 GR..........................................................................396

11

Intel C++ Compiler User and Reference Guides

Gs..........................................................................397 fstack-security-check, GS..........................................398 GT..........................................................................399 GX..........................................................................400 gxx-name................................................................401 Gy..........................................................................402 Gz..........................................................................403 GZ..........................................................................403 H H, QH.....................................................................404 H (Windows*)..........................................................405 help........................................................................406 help-pragma, Qhelp-pragma......................................408 homeparams............................................................409 hotpatch.................................................................410 I I............................................................................411 i-dynamic................................................................412 i-static....................................................................412 icc..........................................................................412 idirafter...................................................................413 imacros...................................................................414 inline-calloc, Qinline-calloc.........................................415 inline-debug-info, Qinline-debug-info..........................416 inline-factor, Qinline-factor.........................................417 inline-forceinline, Qinline-forceinline............................419 inline-level, Ob.........................................................420 inline-max-per-compile, Qinline-max-per-compile.........422 inline-max-per-routine, Qinline-max-per-routine...........423 inline-max-size, Qinline-max-size...............................425 inline-max-total-size, Qinline-max-total-size................427 inline-min-size, Qinline-min-size.................................428

12

Contents

ip, Qip.....................................................................430 ip-no-inlining, Qip-no-inlining.....................................431 ip-no-pinlining, Qip-no-pinlining.................................432 IPF-flt-eval-method0, QIPF-flt-eval-method0................433 IPF-fltacc, QIPF-fltacc...............................................435 IPF-fma, QIPF-fma....................................................436 IPF-fp-relaxed, QIPF-fp-relaxed..................................436 ipo, Qipo.................................................................436 ipo-c, Qipo-c............................................................438 ipo-jobs, Qipo-jobs...................................................439 ipo-S, Qipo-S...........................................................440 ipo-separate, Qipo-separate.......................................441 ipp, Qipp.................................................................442 iprefix.....................................................................444 iquote.....................................................................445 isystem...................................................................446 ivdep-parallel, Qivdep-parallel....................................447 iwithprefix...............................................................448 iwithprefixbefore......................................................449 J J............................................................................450 K Kc++, TP................................................................451 kernel.....................................................................452 L l.............................................................................453 L............................................................................454 LD..........................................................................455 link.........................................................................456 M m...........................................................................457 M, QM.....................................................................459

13

Intel C++ Compiler User and Reference Guides

m32, m64...............................................................460 m32, m64...............................................................461 malign-double..........................................................462 malign-mac68k........................................................463 malign-natural.........................................................464 malign-power...........................................................465 map-opts, Qmap-opts...............................................466 march.....................................................................467 mcmodel.................................................................469 mcpu......................................................................471 MD, QMD.................................................................471 MD.........................................................................472 mdynamic-no-pic.....................................................473 MF, QMF..................................................................474 mfixed-range...........................................................475 MG, QMG.................................................................476 minstruction, Qinstruction..........................................477 mkl, Qmkl...............................................................478 ML..........................................................................479 MM, QMM................................................................481 MMD, QMMD............................................................482 mp.........................................................................483 MP..........................................................................484 multiple-processes, MP..............................................485 mp1, Qprec.............................................................486 MQ.........................................................................487 mregparm...............................................................488 mrelax....................................................................489 mserialize-volatile, Qserialize-volatile..........................490 MT, QMT..................................................................491 MT..........................................................................492 mtune.....................................................................493

14

Contents

multibyte-chars, Qmultibyte-chars..............................496 multiple-processes, MP..............................................497 N noBool....................................................................498 no-bss-init, Qnobss-init.............................................499 nodefaultlibs............................................................500 nolib-inline..............................................................501 logo........................................................................502 nostartfiles..............................................................503 nostdinc++.............................................................504 nostdlib...................................................................505 O o............................................................................506 O...........................................................................507 Oa..........................................................................512 inline-level, Ob.........................................................512 Od..........................................................................514 Og..........................................................................515 fbuiltin, Oi...............................................................516 Op..........................................................................517 openmp, Qopenmp...................................................519 openmp-lib, Qopenmp-lib..........................................520 openmp-link, Qopenmp-link.......................................522 openmp-profile, Qopenmp-profile...............................524 openmp-report, Qopenmp-report................................525 openmp-stubs, Qopenmp-stubs..................................526 openmp-task, Qopenmp-task.....................................527 openmp-threadprivate, Qopenmp-threadprivate...........529 opt-block-factor, Qopt-block-factor..............................530 opt-calloc................................................................531 opt-class-analysis, Qopt-class-analysis........................532 opt-jump-tables, Qopt-jump-tables.............................533

15

Intel C++ Compiler User and Reference Guides

opt-loadpair, Qopt-loadpair........................................535 opt-malloc-options....................................................536 opt-mem-bandwidth, Qopt-mem-bandwidth.................538 opt-mod-versioning, Qopt-mod-versioning...................539 opt-multi-version-aggressive, Qopt-multi-version-aggressive...............................541 opt-prefetch, Qopt-prefetch.......................................542 opt-prefetch-initial-values, Qopt-prefetch-initial-values....................................543 opt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint.................................545 opt-prefetch-next-iteration, Qopt-prefetch-next-iteration..................................546 opt-ra-region-strategy, Qopt-ra-region-strategy............547 opt-report, Qopt-report.............................................549 opt-report-file, Qopt-report-file..................................550 opt-report-help, Qopt-report-help...............................551 opt-report-phase, Qopt-report-phase..........................552 opt-report-routine, Qopt-report-routine.......................554 opt-streaming-stores, Qopt-streaming-stores...............555 opt-subscript-in-range, Qopt-subscript-in-range...........557 Os..........................................................................558 Ot..........................................................................559 Ow.........................................................................560 Ox..........................................................................561 fomit-frame-pointer, Oy.............................................562 P p............................................................................564 P............................................................................565 par-affinity, Qpar-affinity...........................................566 par-num-threads, Qpar-num-threads..........................568 par-report, Qpar-report.............................................569

16

Contents

par-runtime-control, Qpar-runtime-control...................570 par-schedule, Qpar-schedule......................................572 par-threshold, Qpar-threshold....................................575 parallel, Qparallel.....................................................577 pc, Qpc...................................................................578 pch.........................................................................579 pch-create, Yc..........................................................581 pch-dir....................................................................583 pch-use...................................................................584 pie.........................................................................586 pragma-optimization-level.........................................587 prec-div, Qprec-div...................................................588 prec-sqrt, Qprec-sqrt................................................589 print-multi-lib..........................................................590 prof-data-order, Qprof-data-order...............................591 prof-dir, Qprof-dir.....................................................592 prof-file, Qprof-file....................................................593 prof-func-groups......................................................595 prof-func-order, Qprof-func-order...............................596 prof-gen, Qprof-gen..................................................598 prof-hotness-threshold, Qprof-hotness-threshold..........600 prof-src-dir, Qprof-src-dir..........................................601 prof-src-root, Qprof-src-root......................................603 prof-src-root-cwd, Qprof-src-root-cwd.........................605 prof-use, Qprof-use..................................................606 pthread...................................................................608 Q A, QA......................................................................609 A-, QA-...................................................................610 alias-args................................................................611 alias-const, Qalias-const............................................613 ansi-alias, Qansi-alias...............................................614

17

Intel C++ Compiler User and Reference Guides

auto-ilp32, Qauto-ilp32.............................................615 ax, Qax...................................................................616 c99, Qc99................................................................620 Qchkstk..................................................................621 complex-limited-range, Qcomplex-limited-range...........622 Qcov-dir..................................................................623 Qcov-file.................................................................624 Qcov-gen................................................................625 Qcxx-features..........................................................626 diag, Qdiag..............................................................627 diag-dump, Qdiag-dump............................................632 diag, Qdiag..............................................................633 diag-enable sc-include, Qdiag-enable:sc-include...........638 diag-enable sc-parallel, Qdiag-enable:sc-parallel..........640 diag-error-limit, Qdiag-error-limit...............................642 diag-file, Qdiag-file...................................................643 diag-file-append, Qdiag-file-append............................644 diag-id-numbers, Qdiag-id-numbers............................646 diag-once, Qdiag-once..............................................647 dD, QdD..................................................................648 dM, QdM.................................................................649 dN, QdN..................................................................650 Weffc++, Qeffc++....................................................651 fast-transcendentals, Qfast-transcendentals.................653 fma, Qfma...............................................................654 falign-functions, Qfnalign...........................................655 fnsplit, Qfnsplit.........................................................656 fp-port, Qfp-port......................................................658 fp-relaxed, Qfp-relaxed.............................................659 fp-speculation, Qfp-speculation..................................660 fp-stack-check, Qfp-stack-check ................................662 ffreestanding, Qfreestanding......................................663

18

Contents

ftz, Qftz..................................................................664 global-hoist, Qglobal-hoist.........................................666 H, QH.....................................................................667 help-pragma, Qhelp-pragma......................................668 QIA64-fr32..............................................................669 QIfist......................................................................670 inline-calloc, Qinline-calloc.........................................670 inline-debug-info, Qinline-debug-info..........................671 Qinline-dllimport......................................................672 inline-factor, Qinline-factor.........................................673 inline-forceinline, Qinline-forceinline............................675 inline-max-per-compile, Qinline-max-per-compile.........676 inline-max-per-routine, Qinline-max-per-routine...........678 inline-max-size, Qinline-max-size...............................679 inline-max-total-size, Qinline-max-total-size................681 inline-min-size, Qinline-min-size.................................683 Qinstall...................................................................684 minstruction, Qinstruction..........................................685 finstrument-functions, Qinstrument-functions...............687 ip, Qip.....................................................................689 ip-no-inlining, Qip-no-inlining.....................................690 ip-no-pinlining, Qip-no-pinlining.................................691 IPF-flt-eval-method0, QIPF-flt-eval-method0................692 IPF-fltacc, QIPF-fltacc...............................................694 IPF-fma, QIPF-fma....................................................695 IPF-fp-relaxed, QIPF-fp-relaxed..................................695 ipo, Qipo.................................................................695 ipo-c, Qipo-c............................................................697 ipo-jobs, Qipo-jobs...................................................698 ipo-S, Qipo-S...........................................................699 ipo-separate, Qipo-separate.......................................700 ipp, Qipp.................................................................701

19

Intel C++ Compiler User and Reference Guides

ivdep-parallel, Qivdep-parallel....................................703 fkeep-static-consts, Qkeep-static-consts......................704 Qlocation.................................................................705 Qlong-double...........................................................707 M, QM.....................................................................708 map-opts, Qmap-opts...............................................709 MD, QMD.................................................................710 MF, QMF..................................................................711 MG, QMG.................................................................712 mkl, Qmkl...............................................................713 MM, QMM................................................................715 MMD, QMMD............................................................716 Qms.......................................................................717 Qmspp....................................................................718 MT, QMT..................................................................719 multibyte-chars, Qmultibyte-chars..............................720 no-bss-init, Qnobss-init.............................................721 Qnopic....................................................................722 openmp, Qopenmp...................................................722 openmp-lib, Qopenmp-lib..........................................724 openmp-link, Qopenmp-link.......................................726 openmp-profile, Qopenmp-profile...............................727 openmp-report, Qopenmp-report................................728 openmp-stubs, Qopenmp-stubs..................................730 openmp-task, Qopenmp-task.....................................731 openmp-threadprivate, Qopenmp-threadprivate...........732 opt-block-factor, Qopt-block-factor..............................734 opt-class-analysis, Qopt-class-analysis........................735 opt-jump-tables, Qopt-jump-tables.............................736 opt-loadpair, Qopt-loadpair........................................737 opt-mem-bandwidth, Qopt-mem-bandwidth.................738 opt-mod-versioning, Qopt-mod-versioning...................740

20

Contents

opt-multi-version-aggressive, Qopt-multi-version-aggressive...............................741 opt-prefetch, Qopt-prefetch.......................................742 opt-prefetch-initial-values, Qopt-prefetch-initial-values....................................744 opt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint.................................745 opt-prefetch-next-iteration, Qopt-prefetch-next-iteration..................................746 opt-ra-region-strategy, Qopt-ra-region-strategy............748 opt-report, Qopt-report.............................................749 opt-report-file, Qopt-report-file..................................751 opt-report-help, Qopt-report-help...............................752 opt-report-phase, Qopt-report-phase..........................753 opt-report-routine, Qopt-report-routine.......................755 opt-streaming-stores, Qopt-streaming-stores...............756 opt-subscript-in-range, Qopt-subscript-in-range...........757 Qoption...................................................................759 qp..........................................................................760 Qpar-adjust-stack.....................................................760 par-affinity, Qpar-affinity...........................................761 par-num-threads, Qpar-num-threads..........................763 par-report, Qpar-report.............................................764 par-runtime-control, Qpar-runtime-control...................766 par-schedule, Qpar-schedule......................................767 par-threshold, Qpar-threshold....................................770 parallel, Qparallel.....................................................772 pc, Qpc...................................................................773 Qpchi......................................................................774 mp1, Qprec.............................................................775 prec-div, Qprec-div...................................................777 prec-sqrt, Qprec-sqrt................................................778

21

Intel C++ Compiler User and Reference Guides

prof-data-order, Qprof-data-order...............................779 prof-dir, Qprof-dir.....................................................780 prof-file, Qprof-file....................................................781 prof-func-order, Qprof-func-order...............................783 prof-gen, Qprof-gen..................................................785 prof-hotness-threshold, Qprof-hotness-threshold..........786 prof-src-dir, Qprof-src-dir..........................................788 prof-src-root, Qprof-src-root......................................789 prof-src-root-cwd, Qprof-src-root-cwd.........................791 prof-use, Qprof-use..................................................793 rcd, Qrcd.................................................................795 rct, Qrct..................................................................796 restrict, Qrestrict......................................................797 Qsafeseh.................................................................798 save-temps, Qsave-temps.........................................799 scalar-rep, Qscalar-rep..............................................801 mserialize-volatile, Qserialize-volatile..........................802 Qsfalign..................................................................803 std, Qstd.................................................................804 sox, Qsox................................................................807 tbb, Qtbb................................................................808 tcheck, Qtcheck........................................................809 tcollect, Qtcollect......................................................810 tcollect-filter, Qtcollect-filter.......................................812 ftemplate-depth, Qtemplate-depth..............................814 ftrapuv, Qtrapuv.......................................................815 unroll-aggressive, Qunroll-aggressive..........................816 unroll, Qunroll..........................................................817 use-asm, Quse-asm..................................................818 use-intel-optimized-headers, Quse-intel-optimized-headers................................819 Quse-msasm-symbols...............................................820

22

Contents

V (Linux* and Mac OS* X).........................................821 Qvc........................................................................822 vec, Qvec................................................................823 vec-guard-write, Qvec-guard-write.............................825 vec-report, Qvec-report.............................................826 vec-threshold, Qvec-threshold....................................827 wd, Qwd.................................................................829 we, Qwe..................................................................830 wn, Qwn.................................................................831 wo, Qwo..................................................................832 wr, Qwr...................................................................833 ww, Qww.................................................................834 x, Qx......................................................................835 R rcd, Qrcd.................................................................839 rct, Qrct..................................................................840 reserve-kernel-regs..................................................841 restrict, Qrestrict......................................................842 RTC........................................................................843 S S............................................................................845 save-temps, Qsave-temps.........................................846 scalar-rep, Qscalar-rep..............................................848 shared....................................................................849 shared-intel.............................................................850 shared-libgcc...........................................................851 showIncludes...........................................................852 sox, Qsox................................................................853 static......................................................................854 staticlib...................................................................855 static-intel...............................................................857 static-libgcc.............................................................858

23

Intel C++ Compiler User and Reference Guides

std, Qstd.................................................................859 strict-ansi................................................................861 T T............................................................................862 tbb, Qtbb................................................................863 Tc...........................................................................864 TC..........................................................................865 tcheck, Qtcheck........................................................866 tcollect, Qtcollect......................................................867 tcollect-filter, Qtcollect-filter.......................................868 Tp..........................................................................870 Kc++, TP................................................................871 tprofile, Qtprofile......................................................872 traceback................................................................873 U u (Linux*)...............................................................875 u (Windows*)..........................................................876 U............................................................................877 unroll, Qunroll..........................................................878 unroll-aggressive, Qunroll-aggressive..........................879 use-asm, Quse-asm..................................................880 use-intel-optimized-headers, Quse-intel-optimized-headers................................881 use-msasm..............................................................882 V v............................................................................883 V (Linux* and Mac OS* X).........................................884 V (Windows*)..........................................................885 vd..........................................................................886 vec, Qvec................................................................887 vec-guard-write, Qvec-guard-write.............................888 vec-report, Qvec-report.............................................889

24

Contents

vec-threshold, Qvec-threshold....................................891 version....................................................................892 vmb........................................................................893 vmg........................................................................894 vmm.......................................................................895 vms........................................................................896 vmv........................................................................897 W w...........................................................................898 w, W.......................................................................899 w, W.......................................................................900 Wa.........................................................................901 Wabi.......................................................................902 Wall........................................................................903 Wbrief.....................................................................904 Wcheck...................................................................905 Wcomment..............................................................906 Wcontext-limit, Qcontext-limit....................................907 wd, Qwd.................................................................907 Wdeprecated...........................................................908 we, Qwe..................................................................909 Weffc++, Qeffc++....................................................910 Werror, WX..............................................................912 Werror-all................................................................913 Wextra-tokens.........................................................914 Wformat..................................................................915 Wformat-security.....................................................916 Winline...................................................................917 Wl..........................................................................918 WL.........................................................................919 Wmain....................................................................920 Wmissing-declarations..............................................921

25

Intel C++ Compiler User and Reference Guides

Wmissing-prototypes................................................922 Wnon-virtual-dtor.....................................................923 wn, Qwn.................................................................924 wo, Qwo..................................................................925 Wp.........................................................................925 Wp64......................................................................926 Wpointer-arith.........................................................927 Wport.....................................................................928 Wpragma-once.........................................................929 wr, Qwr...................................................................930 Wreorder.................................................................931 Wreturn-type...........................................................932 Wshadow................................................................933 Wstrict-prototypes....................................................934 Wtrigraphs..............................................................935 Wuninitialized..........................................................936 Wunknown-pragmas.................................................937 Wunused-function.....................................................938 Wunused-variable.....................................................939 ww, Qww.................................................................940 Wwrite-strings.........................................................941 Werror, WX..............................................................941 X x, Qx......................................................................942 x (type option).........................................................947 X............................................................................949 Xlinker....................................................................950 Y Y-...........................................................................951 pch-create, Yc..........................................................952 Yd..........................................................................954 Yu..........................................................................955

26

Contents

YX..........................................................................956 Z g, Zi, Z7..................................................................957 Za..........................................................................959 Zc..........................................................................960 Zd..........................................................................961 Ze..........................................................................961 Zg..........................................................................962 g, Zi, Z7..................................................................963 ZI...........................................................................964 Zl...........................................................................965 Zp..........................................................................966 Zs..........................................................................967 Zx..........................................................................968

Chapter 15: Quick Reference Guide and Cross ReferenceRelated Options..............................................................1013 Linking Tools and Options........................................1013 Portability Options..................................................1016 Unsupported Microsoft Visual Studio* Compiler Options.............................................................1028

Part III: Optimizing Applications Chapter 16: Overview: Optimizing ApplicationsOptimizing with the Intel Compiler...................................1033 Optimizing for Performance..............................................1035 Overview of Parallelism Method.........................................1036 Quick Reference Lists......................................................1038 Other Resources.............................................................1038

Chapter 17: Evaluating PerformancePerformance Analysis......................................................1041

27

Intel C++ Compiler User and Reference Guides

Using a Performance Enhancement Methodology.................1041 Intel Performance Analysis Tools and Libraries...................1044 Performance Enhancement Strategies................................1046 Using Compiler Reports....................................................1055 Compiler Reports Overview......................................1055 Compiler Reports Quick Reference.............................1055 Generating Reports.................................................1057 Interprocedural Optimizations (IPO) Report................1060 Profile-guided Optimization (PGO) Report...................1066 High-level Optimization (HLO) Report........................1069 High Performance Optimizer (HPO) Report.................1085 Parallelism Report...................................................1086 Software Pipelining (SWP) Report (Linux* and Windows*).........................................................1088 Vectorization Report................................................1093 OpenMP* Report.....................................................1099

Chapter 18: Using Compiler OptimizationsAutomatic Optimizations Overview....................................1101 Enabling Automatic Optimizations.....................................1102 Targeting IA-32 and Intel(R) 64 Architecture Processors Automatically.............................................................1106 Targeting Multiple IA-32 and Intel(R) 64 Architecture Processors for Run-time Performance............................................1110 Targeting IA-32 and Intel 64 Architecture Processors Manually....................................................................1113 Targeting IA-64 Architecture Processors Automatically.........1117 Restricting Optimizations..................................................1118

Chapter 19: Using Parallelism: OpenMP* SupportOpenMP* Support Overview.............................................1121 OpenMP* Options Quick Reference....................................1122

28

Contents

OpenMP* Source Compatibility and Interoperability with Other Compilers..................................................................1125 Using OpenMP*..............................................................1127 Parallel Processing Model.................................................1130 Worksharing Using OpenMP*............................................1135 Verifying OpenMP* Using Parallel Lint................................1150 OpenMP* Directives........................................................1161 THREADPRIVATEthreadprivate Directive.....................1161 OpenMP* Advanced Issues...............................................1161 OpenMP* Examples.........................................................1164 Libraries, Directives, Clauses, and Environmental Variables...1168 OpenMP* Environment Variables...............................1168 OpenMP* Directives and Clauses Summary................1177 OpenMP* Library Support........................................1180 Intel(R) Workqueing Model" product="ClassicC...................1229 Intel Workqueuing Model Overview..........................1229 Workqueuing Constructs..........................................1230 Workqueuing Example Function................................1236

Chapter 20: Using Parallelism: Automatic ParallelizationAuto-parallelization Overview...........................................1237 Auto-Parallelization Options Quick Reference.......................1242 Auto-parallelization: Enabling, Options, Directives, and Environment Variables.................................................1243 Programming with Auto-parallelization...............................1244 Programming for Multithread Platform Consistency..............1245

Chapter 21: Using Parallelism: Automatic VectorizationAutomatic Vectorization Overview.....................................1251 Automatic Vectorization Options Quick Reference................1251 Programming Guidelines for Vectorization...........................1253 Vectorization and Loops...................................................1254 Loop Constructs..............................................................1258

29

Intel C++ Compiler User and Reference Guides

Language Support and Directives......................................1269

Chapter 22: Using Interprocedural Optimization (IPO)Interprocedural Optimization (IPO) Overview......................1271 Interprocedural Optimization (IPO) Quick Reference............1274 Using IPO......................................................................1275 IPO-Related Performance Issues.......................................1278 IPO for Large Programs....................................................1279 Understanding Code Layout and Multi-Object IPO................1281 Creating a Library from IPO Objects..................................1283 Requesting Compiler Reports with the xi* Tools...................1285 Inline Expansion of Functions...........................................1286 Inline Function Expansion........................................1286 Compiler Directed Inline Expansion of User Functions...1288 Developer Directed Inline Expansion of User Functions...........................................................1290

Chapter 23: Using Profile-Guided Optimization (PGO)Profile-Guided Optimizations Overview...............................1295 Profile-Guided Optimization (PGO) Quick Reference.............1296 Profile an Application.......................................................1306 PGO Tools......................................................................1308 PGO Tools Overview................................................1308 code coverage Tool.................................................1308 test prioritization Tool..............................................1329 profmerge and proforder Tools..................................1338 Using Function Order Lists, Function Grouping, Function Ordering, and Data Ordering Optimizations............1342 Comparison of Function Order Lists and IPO Code Layout...............................................................1349 PGO API Support............................................................1350 API Support Overview.............................................1350 PGO Environment Variables......................................1351

30

Contents

Dumping Profile Information....................................1352 Interval Profile Dumping..........................................1353 Resetting the Dynamic Profile Counters......................1355 Dumping and Resetting Profile Information.................1355

Chapter 24: Using High-Level Optimization (HLO)High-Level Optimizations (HLO) Overview..........................1357 Loop Unrolling................................................................1359 Loop Independence.........................................................1361 Prefetching with Options..................................................1365

Chapter 25: Optimization Support FeaturesPrefetching Support.........................................................1367 About Register Allocation.................................................1371

Chapter 26: Programming GuidelinesUnderstanding Run-time Performance................................1375 Understanding Data Alignment..........................................1379 Timing Your Application....................................................1380 Applying Optimization Strategies.......................................1381 Optimizing the Compilation Process...................................1392 Symbol Visibility Attribute Options (Linux* and Mac OS* X).....................................................................1392

Part IV: Floating-point Operations Chapter 27: Overview: Floating-point Operations Chapter 28: Understanding Floating-point OperationsUsing the -fp-model (/fp) Option.......................................1399 Setting the FTZ and DAZ Flags..........................................1403

Chapter 29: Tuning PerformanceOverview: Tuning Performance..........................................1407

31

Intel C++ Compiler User and Reference Guides

Handling Floating-point Array Operations in a Loop Body......1407 Reducing the Impact of Denormal Exceptions......................1408 Avoiding Mixed Data Type Arithmetic Expressions................1409 Using Efficient Data Types................................................1412 Checking the Floating-point Stack State.............................1412

Chapter 30: Understanding IEEE Floating-point OperationsOverview: Understanding IEEE Floating-point Standard........1415 Floating-point Formats.....................................................1415 Special Values................................................................1415

Part V: Intrinsics Reference Chapter 31: Overview: Intrinsics ReferenceDetails about Intrinsics....................................................1420 Naming and Usage Syntax...............................................1423 Links and Bibliography.....................................................1424

Chapter 32: Intrinsics for All Intel ArchitecturesOverview.......................................................................1427 Integer Arithmetic Intrinsics.............................................1427 Floating-point Intrinsics...................................................1428 String and Block Copy Intrinsics........................................1431 Synchronization Primitives...............................................1432 Miscellaneous Intrinsics...................................................1434

Chapter 33: Intrinsics for IA-64 ArchitectureOverview.......................................................................1437 Native Intrinsics .............................................................1437 Lock and Atomic Operation Related Intrinsics......................1440 Load and Store Intrinsics.................................................1444 Operating System Related Intrinsics..................................1444

32

Contents

Conversion Intrinsics.......................................................1449 Multimedia Addition Intrinsics...........................................1450 Miscellaneous Intrinsics...................................................1459 Register Names for getReg() and setReg()..........................1460 Intrinsics for Dual-Core Intel(R) Itanium(R) 2 processor 9000 series........................................................................1464 Microsoft Compatible Intrinsics for Dual-Core Intel(R) Itanium(R) 2 processor 9000 series...............................1471

Chapter 34: Data Alignment, Memory Allocation Intrinsics, and Inline AssemblyOverview.......................................................................1475 Alignment Support..........................................................1475 Allocating and Freeing Aligned Memory Blocks....................1477 Inline Assembly..............................................................1477

Chapter 35: MMX(TM) Technology IntrinsicsOverview.......................................................................1485 Details about MMX(TM) Technology Intrinsics......................1485 The EMMS Instruction: Why You Need It ...........................1486 EMMS Usage Guidelines...................................................1487 General Support Intrinsics................................................1488 Packed Arithmetic Intrinsics..............................................1491 Shift Intrinsics................................................................1493 Logical Intrinsics.............................................................1496 Compare Intrinsics..........................................................1496 Set Intrinsics..................................................................1498 Intrinsics for IA-64 Architecture........................................1500

Chapter 36: Intrinsics for Intel(R) Streaming SIMD ExtensionsOverview.......................................................................1503 Details about Intel(R) Streaming SIMD Extension Intrinsics...1503

33

Intel C++ Compiler User and Reference Guides

Writing Programs with Intel(R) Streaming SIMD Extensions Intrinsics...................................................................1506 Arithmetic Intrinsics........................................................1507 Logical Intrinsics ............................................................1512 Compare Intrinsics..........................................................1513 Conversion Intrinsics.......................................................1523 Load Intrinsics................................................................1528 Set Intrinsics..................................................................1530 Store Intrinsics...............................................................1531 Cacheability Support Intrinsics..........................................1534 Integer Intrinsics ...........................................................1535 Intrinsics to Read and Write Registers ...............................1539 Miscellaneous Intrinsics...................................................1539 Using Intel(R) Streaming SIMD Extensions on IA-64 Architecture...............................................................1541 Macro Functions..............................................................1543 Macro Function for Shuffle Operations.......................1543 Macro Functions to Read and Write Control Registers...1544 Macro Function for Matrix Transposition.....................1547

Chapter 37: Intrinsics for Intel(R) Streaming SIMD Extensions 2Overview.......................................................................1549 Floating-point Intrinsics...................................................1550 Arithmetic Intrinsics................................................1550 Logical Intrinsics.....................................................1554 Compare Intrinsics..................................................1555 Conversion Intrinsics...............................................1566 Load Intrinsics........................................................1570 Set Intrinsics..........................................................1573 Store Intrinsics.......................................................1575 Integer Intrinsics............................................................1577

34

Contents

Arithmetic Intrinsics................................................1577 Logical Intrinsics.....................................................1586 Shift Intrinsics........................................................1587 Compare Intrinsics..................................................1592 Conversion Intrinsics...............................................1595 Move Intrinsics.......................................................1597 Load Intrinsics........................................................1598 Set Intrinsics..........................................................1599 Store Intrinsics.......................................................1603 Miscellaneous Functions and Intrinsics...............................1605 Cacheability Support Intrinsics ................................1605 Miscellaneous Intrinsics ..........................................1608 Casting Support Intrinsics .......................................1614 Pause Intrinsic........................................................1614 Macro Function for Shuffle.......................................1616

Chapter 38: Intrinsics for Intel(R) Streaming SIMD Extensions 3Overview.......................................................................1617 Integer Vector Intrinsics ..................................................1617 Single-precision Floating-point Vector Intrinsics ..................1618 Double-precision Floating-point Vector Intrinsics ................1619 Miscellaneous Intrinsics ..................................................1621 Macro Functions .............................................................1621

Chapter 39: Intrinsics for Intel(R) Supplemental Streaming SIMD Extensions 3Overview.......................................................................1623 Addition Intrinsics ..........................................................1623 Subtraction Intrinsics ......................................................1625 Multiplication Intrinsics ...................................................1627 Absolute Value Intrinsics .................................................1628 Shuffle Intrinsics.............................................................1629

35

Intel C++ Compiler User and Reference Guides

Concatenate Intrinsics ....................................................1630 Negation Intrinsics .........................................................1631

Chapter 40: Intrinsics for Intel(R) Streaming SIMD Extensions 4Overview.......................................................................1639 Vectorizing Compiler and Media Accelerators.......................1639 Overview: Vectorizing Compiler and Media Accelerators.......................................................1639 Packed Blending Intrinsincs .....................................1640 Floating Point Dot Product Intrinsincs .......................1641 Packed Format Conversion Intrinsics .........................1641 Packed Integer Min/Max Intrinsics.............................1642 Floating Point Rounding Intrinsics.............................1644 DWORD Multiply Intrinsics.......................................1645 Register Insertion/Extraction Intrinsics .....................1645 Test Intrinsics ........................................................1646 Packed DWORD to Unsigned WORD Intrinsic ..............1648 Packed Compare for Equal Intrinsic...........................1648 Cacheability Support Intrinsic ..................................1648 Efficient Accelerated String and Text Processing..................1648 Overview...............................................................1648 Packed Compare Intrinsics ......................................1649 Application Targeted Accelerators Intrinsics................1651

Chapter 41: Intrinsic Performance Across Intel ArchitecturesOverview.......................................................................1655 Intrinsics that Increase Performance Across All IA...............1655 Performance of MMX(TM) Technology Intrinsics ..................1659 Performance of Intel(R) Streaming SIMD Extensions Intrinsics...................................................................1663

36

Contents

Chapter 42: Intrinsics for Advanced Encryption Standard ImplementationOverview.......................................................................1671 Intrinsics for Carry-less Multiplication Instruction and Advanced Encryption Standard Instructions..................................1672

Chapter 43: Intrinsics for Converting Half FloatsOverview.......................................................................1675 Intrinsics for Converting Half Floats...................................1676

Part VI: Compiler Reference Chapter 44: Intel C++ Compiler PragmasOverview: Intel C++ Compiler Pragmas............................1681 Intel-Specific Pragmas.....................................................1682 Intel-specific Pragma Reference........................................1683 alloc_section..........................................................1683 distribute_point......................................................1684 intel_omp_task......................................................1688 intel_omp_taskq.....................................................1689 ivdep....................................................................1691 loop_count.............................................................1693 memref_control......................................................1695 novector................................................................1700 optimize................................................................1701 optimization_level...................................................1703 parallel/noparallel...................................................1705 prefetch/noprefetch................................................1706 swp/noswp............................................................1710 unroll/nounroll.......................................................1711 unroll_and_jam/nounroll_and_jam............................1713 unused..................................................................1716

37

Intel C++ Compiler User and Reference Guides

vector {always|aligned|unaligned|nontemporal|temporal}..1716 Intel Supported Pragmas .................................................1720

Chapter 45: Intel Math LibraryOverview: Intel Math Library...........................................1723 Using the Intel Math Library.............................................1723 Math Functions...............................................................1727 Function List..........................................................1727 Trigonometric Functions...........................................1733 Hyperbolic Functions...............................................1738 Exponential Functions..............................................1740 Special Functions....................................................1745 Nearest Integer Functions........................................1749 Remainder Functions...............................................1752 Miscellaneous Functions...........................................1753 Complex Functions..................................................1759 C99 Macros............................................................1765

Chapter 46: Intel C++ Class LibrariesIntroduction to the Class Libraries.....................................1767 Overview: Intel C++ Class Libraries..........................1767 Hardware and Software Requirements.......................1767 About the Classes...................................................1767 Details About the Libraries.......................................1768 C++ Classes and SIMD Operations............................1769 Capabilities of C++ SIMD Classes.............................1773 Integer Vector Classes.....................................................1775 Overview: Integer Vector Classes..............................1775 Terms, Conventions, and Syntax Defined...................1776 Rules for Operators.................................................1778 Assignment Operator...............................................1782 Logical Operators....................................................1782

38

Contents

Addition and Subtraction Operators...........................1784 Multiplication Operators...........................................1787 Shift Operators.......................................................1789 Comparison Operators.............................................1791 Conditional Select Operators....................................1793 Debug Operations...................................................1796 Unpack Operators...................................................1799 Pack Operators.......................................................1804 Clear MMX State Operator.....................................1804 Integer Functions for Streaming SIMD Extensions.......1805 Conversions between Fvec and Ivec..........................1806 Floating-point Vector Classes............................................1807 Overview: Floating-point Vector Classes.....................1807 Fvec Notation Conventions.......................................1808 Data Alignment......................................................1809 Conversions...........................................................1809 Constructors and Initialization..................................1810 Arithmetic Operators...............................................1812 Minimum and Maximum Operators............................1818 Logical Operators....................................................1819 Compare Operators.................................................1821 Conditional Select Operators for Fvec Classes.............1826 Cacheability Support Operators.................................1831 Debug Operations...................................................1831 Load and Store Operators........................................1833 Unpack Operators...................................................1833 Move Mask Operators..............................................1834 Classes Quick Reference..................................................1834 Programming Example.....................................................1844 C++ Librarcref_cls/common/y Extensions..........................1846 Introduction...........................................................1846 Intel's valarray implementation.................................1846

39

Intel C++ Compiler User and Reference Guides

Chapter 47: Intel's C/C++ Language ExtensionsIntroduction...................................................................1851 Intel's C++ lambda extensions.........................................1851 Introduction...........................................................1851 Details on Using Lambda Expressions in C++.............1851 Understanding Lambda-Capture................................1853 Lambda Function Object..........................................1855

40

Legal InformationINFORMATION 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 CONDITIONS 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 LIABILITY 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 change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or by visiting Intel's Web Site. Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details. BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Atom, Centrino Atom Inside, Centrino Inside, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486, IntelDX2, IntelDX4, IntelSX2, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, Viiv Inside, vPro Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries. * Other names and brands may be claimed as the property of others. Copyright (C) 1996-2009, Intel Corporation. All rights reserved. Portions Copyright (C) 2001, Hewlett-Packard Development Company, L.P.

41

Getting Help and SupportThe Intel C++ Compiler lets you build and optimize C/C++ applications for the Linux* OS (operating system). You can use the compiler on the command line or in the Eclipse* integrated development environment. For more information about the compiler features and other components, see your Release Notes. This documentation assumes that you are familiar with the C++ programming language and with your processor's architecture. You should also be familiar with the host computer's operating system.

Product Website and SupportFor general information on support for Intel software products, visit the Intel web site http://www.intel.com/software/products/ At this site, you will find comprehensive product information, including:

Links to each product, where you will find technical information such as white papers and articles Links to user forums Links to news and eventsTo find technical support information, to register your product, or to contact Intel, please visit: http://www.intel.com/software/products/support/ For additional information, see the Technical Support section of your Release Notes.

System RequirementsFor detailed information on system requirements, see the Release Notes.

43

IntroductionIntroducing the Intel C++ Compiler

1

The Intel C++ Compiler can generate code for IA-32, Intel 64, or IA-64 architecture applications on any Intel-based Linux* system. IA-32 architecture applications (32-bit) can run on all Intel-based Linux systems. Intel 64 architecture applications and IA-64 architecture applications can run only on Intel 64 architecture-based or IA-64 architecture-based Linux systems. You can use the compiler on the command line or in the Eclipse* integrated development environment. You can find further information in the following documents:

Building Applications Compiler Options Optimizing Applications Floating-point Operations Compiler Reference Intrinsics Reference

Notational ConventionsInformation in this documentation applies to all supported operating systems and architectures unless otherwise specified. This documentation uses the following conventions:

Notational Conventionsthis type Indicates command-line or option arguments. Indicates a code example. Indicates what you type as input.

This type This type

45

1

Intel C++ Compiler User and Reference Guides

This type

Indicates menu names, menu items, button names, dialog window names, and other user-interface items. Menu names and menu items joined by a greater than (>) sign indicate a sequence of actions. For example, "Click File>Open" indicates that in the File menu, click Open to perform this action. Indicates a choice of items or values. You can usually only choose one of the values in the braces. Indicates items that are optional. Indicates that the item preceding the ellipsis (three dots) can be repeated. These terms refer to all supported Microsoft* Windows* operating systems. These terms refer to all supported Linux* operating systems. These terms refer to Intel-based systems running the Mac OS* X operating system. An asterisk at the end of a word or name indicates it is a third-party product trademark. This term refers to Windows* OS options, Linux* OS options, or MAC OS* X options that can be used on the compiler command line.

File>Open

{value | value}

[item] item [, item ]...

Windows* OS Windows operating system Linux* OS Linux operating system Mac OS* X Mac OS X operating system Microsoft Windows XP*

compiler option

Conventions Used in Compiler Options

46

Introduction

1

/option or -option

A slash before an option name indicates the option is available on Windows OS. A dash before an option name indicates the option is available on Linux OS* and Mac OS* X systems. For example: Windows option: /fast Linux and Mac OS X option: -fast Note: If an option is available on Windows* OS, Linux* OS, and Mac OS* X systems, no slash or dash appears in the general description of the option. The slash and dash will only appear where the option syntax is described. Indicates that an option requires a argument (parameter). For example, you must specify an argument for the following options: Windows OS option: /Qdiag-error-limit:n Linux OS and Mac OS X option: -diag-error-limit n Indicates that an option requires one of the keyword values. Indicates that the option can be used alone or with an optional keyword. Indicates that the option can be used alone or with an