Document number: 304967-001US
Disclaimer and Legal Information INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL 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. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Intel may make changes to specifications and product descriptions at any time, without notice. The software described in this document may contain software defects which may cause the product to deviate from published specifications. Current characterized software defects are available on request. This document as well as the software described in it is furnished under license and may only be used or copied in accordance with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation. Developers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Improper use of reserved or undefined features or instructions may cause unpredictable behavior or failure in developer's software code when running on an Intel processor. Intel reserves these features or instructions for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from their unauthorized use. BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Chips, Core Inside, Dialogic, EtherExpress, ETOX, FlashFile, i386, i486, i960, icomp, InstantIP, Intel, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, 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 XScale, IPLink, Itanium, Itanium Inside, MCS, MMX, MMX logo, Optimizer logo, OverDrive, Paragon, PDCharm, Pentium, Pentium II Xeon, Pentium III Xeon, Performance at Your Command, Pentium Inside, skoool, Sound Mark, The Computer Inside., The Journey Inside, VTune, Xeon, Xeon Inside and Xircom are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. * Other names and brands may be claimed as the property of others. Copyright (C) 1996-2006, Intel Corporation.
Table Of Contents Introduction the Intel C++ Compiler...1 Intel C++ Compiler Includes:...1 What's New in This Release...1 Product Web Site and Support...2 System Requirements...2 FLEXlm* Electronic Licensing...2 Related Publications...2 How to Use This Document...4 Notation Conventions...4 iii
Introduction the Intel C++ Compiler Welcome to the Intel C++ Compiler. The compiler is used to compile C and C++ programs for Intel IA-32, Intel Extended Memory 64 Technology (Intel EM64T), and Intel Itanium -based systems on Linux* operating systems. The Linux compiler can be used from the command line or with the Eclipse* integrated development environment. Intel C++ Compiler Includes: Intel C++ Compiler for 32-bit Applications Intel C++ Compiler for Intel EM64T Intel C++ Compiler for Itanium-based Applications Enhanced Debugger Compiler documentation (this document) See Getting Started for basic information on running the compiler. What's New in This Release This release contains a number of changes, improvements, and new features. The following list describes the major 9.1 enhancements: New compiler options are available. These are detailed in New Options in the Compiler Options reference. Support for floating-point semantics has been expanded, allowing you to enable more aggressive optimizations on floating-point data and round intermediate results to source-defined precision. For more information, see the -fp-model compiler option. The Intel C++ Compiler integration with Eclipse* in supported on Intel Itanium -based systems. The Intel C++ Compiler integration with Eclipse* includes support for the Intel Debugger. Note Please refer to the Release Notes for the most current information about features implemented in this release. 1
Product Web Site and Support For the latest product information, visit the Intel Web site http://developer.intel.com/software/products/ Here you will find: information on how to obtain support for this product links to newsletter articles links to marketing information System Requirements See the Release Notes (Release_Notes.htm) for a complete list of system requirements. FLEXlm* Electronic Licensing The Intel C++ Compiler uses Macrovision's FLEXlm* licensing technology. The compiler requires a valid license file in the licenses directory in the installation path. The default directory is /opt/intel/licenses. The license files have a.lic file extension. If you require a counted license, see Using the Intel License Manager for FLEXlm* (flex_ug.pdf). Related Publications The following documents provide additional information relevant to the Intel C++ Compiler: ISO/IEC 9989:1990, Programming Languages--C ISO/IEC 14882:1998, Programming Languages--C++. The Annotated C++ Reference Manual, Special Edition, Ellis, Margaret; Stroustrup, Bjarne, Addison Wesley, 1991. Provides information on the C++ programming language. The C++ Programming Language, 3rd edition, 1997: Addison-Wesley Publishing Company, One Jacob Way, Reading, MA 01867. The C Programming Language, 2nd edition, Kernighan, Brian W.; Ritchie, Dennis W., Prentice Hall, 1988. Provides information on the K & R definition of the C language. C: A Reference Manual, 3rd edition, Harbison, Samual P.; Steele, Guy L., Prentice Hall, 1991. Provides information on the ANSI standard and extensions of the C language. Intel Architecture Software Developer's Manual, Volume 1: Basic Architecture, Intel Corporation, doc. number 243190. 2
Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual, Intel Corporation, doc. number 243191. Intel Architecture Software Developer's Manual, Volume 3: System Programming, Intel Corporation, doc. number 243192. Intel Itanium Assembler User's Guide. Intel Itanium -based Assembly Language Reference Manual. Itanium Architecture Software Developer's Manual Vol. 1: Application Architecture, Intel Corporation, doc. number 245317-001. Itanium Architecture Software Developer's Manual Vol. 2: System Architecture, Intel Corporation, doc. number 245318-001. Itanium Architecture Software Developer's Manual Vol. 3: Instruction Set Reference, Intel Corporation, doc. number 245319-001. Itanium Architecture Software Developer's Manual Vol. 4: Itanium Processor Programmer's Guide, Intel Corporation, doc. number 245319-001. Intel Architecture Optimization Manual, Intel Corporation, doc. number 245127. Intel Processor Identification with the CPUID Instruction, Intel Corporation, doc. number 241618. Intel Architecture MMX(TM) Technology Programmer's Reference Manual, Intel Corporation, doc. number 241618. Pentium Pro Processor Developer's Manual (3-volume Set), Intel Corporation, doc. number 242693. Pentium II Processor Developer's Manual, Intel Corporation, doc. number 243502-001. Pentium Processor Specification Update, Intel Corporation, doc. number 242480. Pentium Processor Family Developer's Manual, Intel Corporation, doc. numbers 241428-005. An Auto-vectorizing Compiler for the Intel Architecture, Aart Bik, Paul Grey, Milind Girkar, and Xinmin Tian. Submitted for publication Efficient Exploitation of Parallelism on Pentium III and Pentium 4 Processor- Based Systems, Aart Bik, Milind Girkar, Paul Grey, and Xinmin Tian. The Software Vectorization Handbook. Applying Multimedia Extensions for Maximum Performance, A.J.C. Bik. Intel Press, June, 2004. Most Intel documents are also available from the Intel Corporation Web site at http://developer.intel.com/software/products/ 3
How to Use This Document This documentation explains how to use the Intel C++ Compiler. It provides information on how to get started with the Intel C++ Compiler, how this compiler operates, and what capabilities it offers for high performance. You learn how to use the standard and advanced compiler optimizations to gain maximum performance of your application. This documentation assumes that you are familiar with the C and C++ standard programming language and with the Intel processor architecture. You should also be familiar with the host computer's operating system. Note This document explains how information and instructions apply differently to each targeted architecture. If there is no specific indication to an architecture, the description is applicable to all architectures. Notation Conventions Style This type style This type style This type style Definition indicates an element of syntax, a reserved word, a keyword, a file name, or part of a program example (text appears in lowercase unless UPPERCASE is required) indicates what you type as input indicates an argument on a command line or an option's argument [ items ] indicates that the items enclosed in brackets are optional { item item }... (ellipses) indicates a set of choices from which you must select one indicates that an argument can be repeated several times The following table lists default compiler installation paths, which will be used if you do not specify an installation directory when you install the product. The term <install-dir> will be used in the documentation to indicate the installation path. Compiler Default Compiler Installation Path IA-32 compiler /opt/intel/cc/9.1.xxx/ Itanium compiler /opt/intel/cc/9.1.xxx/ Intel EM64T /opt/intel/cce/9.1.xxx/ If you specify an installation directory, the installation process will use that directory and will install compiler files under the specified directory. Any path you specify serves as a 4
replacement for the default location of /opt/intel/cc/9.1.xxx/. For example, if, during installation, you specify an installation directory of /Intel_Tools/, the compiler and its subdirectories will be installed below the named directory, as shown in the following example: /Intel_Tools/Bin 5