Intel® Software Development Products for Intel® Platforms and Technologies
Intel® Compilers Overview
 
Overview
Intel compilers are available in the following packages
Optimize Your Application for Your Needs
Customer Benefits
Features
Excellent floating-point instruction throughput
Data prefetching
Interprocedural Optimization (IPO)
Profile Guided Optimization (PGO)
Multi-threading Support (OpenMP, Autoparallel)
Intel Compilers for IA-32 Processors and Intel® Wireless MMX™ Technology
Automatic Vectorizer
Processor Dispatch
Intel Compilers for the Intel Itanium® 2 Processor
Predication
Software Pipelining
Speculation
Intel C++ Compilers
Intel C++ Compilers for Windows
Intel C++ Compilers for Linux
Intel® Fortran Compilers
Intel Fortran Compilers for Windows
Intel Fortran Compilers for Linuxx
Requirements
Print
Close Window
 
Intel® compilers help software run at top speed. They are compatible with tools developers use. The compilers plug into popular development environments to support the way developers work and feature source and binary compatibility with popular compilers. Every compiler includes Intel® Premier Support that comes directly from Intel and offers updates, technical support and expertise about the Intel architecture.

Intel compilers are available in the following packages:
Intel® C++ Compiler for Windows* (includes Intel C++ Compiler for Microsoft eMbedded Visual C++*)
Intel C++ Compiler for Linux*
Intel® Visual Fortran Compiler for Windows, Standard Edition
Intel® Fortran Compiler for Linux
OPTIMIZE YOUR APPLICATION FOR YOUR NEEDS
Available for Windows* and Linux*
Special optimizations for systems using Intel® Personal Internet Client Architecture (Intel® PCA), Intel IA-32 and Intel® Itanium® 2 processors
Advanced optimization features provide great performance for your applications
Compatible with development tools most programmers already use
C++ Compiler for Windows features binary compatibility with Microsoft Visual C++* .NET
C++ Compiler for Linux features binary compatibility with GCC 3.2
Intel® Fortran Compiler offers substantial source compatibility with Compaq Visual Fortran*
Premier Support from Intel keeps you current with the latest compiler updates
Fully-functional trial versions available
CUSTOMER BENEFITS
Performance — Advanced optimization features deliver outstanding performance for applications running on the latest Intel processors, including Intel® Personal Internet Client Architecture (Intel® PCA), Intel® Pentium® 4, Intel® Xeon™, Intel Pentium M component of Intel® Centrino™ mobile technology§; and Intel® Itanium® 2 processors.

Intel compilers also provide threaded application development and optimization through support of the OpenMP* 2.0 standard, auto-vectorization and auto-parallelism features.
Compatibility — The Intel C++ Compiler for Windows is source and object compatible with Microsoft Visual C++* 6.0 and .NET native-code compilers. The Intel C++ and Fortran compilers plug into the Microsoft Visual Studio* environment, which preserves your development environment investment. The Intel Compiler for Windows CE .NET (available with Intel C++ Compiler for Windows) plugs into the Microsoft eMbedded Visual C++ environment. Intel C++ compilers follow ANSI C/C++ and ISO C/C++ standards. The Intel C++ Compiler for Linux is source and object code compatible with GNU C 3.2 and supports the C++ ABI.
Support — Every purchase of an Intel® Software Development Product includes a year of support services, which provides access to Intel® Premier Support and all product updates during that time. Intel Premier Support gives you online access to technical notes, application notes, and documentation. Install the product, and then register to get support and product update information.

Back to Intel page
FEATURES
All of the Intel compilers feature a set of optimizations that help deliver application performance. These features include support for Streaming SIMD Extensions 2 (SSE2) on IA-32 processors, software pipelining in the Itanium 2 processor, and support for Intel XScale® microarchitecture. Intel compilers support multithreaded code development through auto-vectorization, auto-parallelism and OpenMP programming.
Excellent floating-point instruction throughput
Intel C++ Compiler on IA-32 processors uses the stack to efficiently execute floating-point instructions. Application performance gains come from overlapping instructions that can put their calculation results in any stack register. On Itanium 2 processors, the compiler takes advantage of directly addressable floating-point registers that enable pipelined floating-point loops and a reduced number of load and store operations as compared to conventional architectures, so applications can run at higher execution speeds. The compiler for Intel PCA processors provides highly-optimized floating-point emulation libraries to enable development and/or migration of applications that take advantage of floating-point calculations (single and double precision).
Data prefetching
Data prefetching is an effective technique to improve memory access latency on IA-32 and Itanium 2 processors. Data prefetching inserts prefetch instructions for selected data references at specific points in the program, so referenced data items are moved as close to the processor as possible (put in cache memory) before data items are actually used. This can provide significant performance improvement for applications that are more compute-intensive. Benefits include:

Automatic data prefetching
Data prefetching coordination with other optimizations (for example, software pipelining)
Code portability so developers don't need to manage this aspect of application performance in source code to write processor-specific instructions

On IA-32 processors, the compiler can work with the Processor Dispatch capability to automatically detect if the application is running on a Pentium 4 processor or an earlier Pentium processor. Pentium 4 processors offer hardware-assisted data prefetching which generally produces better performance, but even here, Processor Dispatch remains under the control of the application developer.

Version 8.0 of the Intel compilers for IA-32 and Itanium 2 processors also features two new tools: the Intel® Code Coverage tool and the Intel® Test Prioritization tool. The code coverage tool helps developers discover how much of their application code is actually used when applied against specified workloads. Once developers know how much of their application is tested by a workload, they can use the test prioritization tool to target and maintain efficient testing procedures.
Interprocedural Optimization (IPO)
IPO automatically creates faster code through inlining, where function calls are replaced with real function code. It is featured on all Intel compilers and can dramatically improve application performance in programs that contain many small- or medium-sized functions that are used frequently, especially programs that contain calls within loops.
Profile Guided Optimization (PGO)
The PGO compilation process enables the Intel C++ Compiler to take better advantage of the processor architecture, more effectively use instruction paging and cache memory, and make better branch predictions. It improves application performance by reducing instruction-cache thrashing, reorganizing code layout, shrinking code size and reducing branch mispredictions. Note: PGO does not apply to Intel C++ Compiler for Microsoft eMbedded Visual C++*.

PGO Compilation process - Click to view
Click image to enlarge.

Back to Intel page

Multi-threading Support (OpenMP, Autoparallel)
OpenMP is an industry standard for portable multi-threaded application development, and is effective at fine grain (loop level) and large grain (function level) threading. Intel C++ compilers for IA-32 and Itanium 2 processors support OpenMP API version 2.0 and transform code for shared memory parallel programming.
INTEL COMPILERS FOR IA-32 PPROCESSORS AND INTEL® WIRELESS MMX™ TECHNOLOGY
IA-32 compilers support Streaming SIMD Extensions 2 (SSE2) that distinguishes the Intel® NetBurst® microarchitecture introduced with the Pentium 4 processor. SSE2 goes beyond the initial, performance-oriented support for multimedia or graphical components of applications and includes improved performance for floating-point and double-precision computational needs. The new instructions are supported in a number of ways including inline ASM, compiler intrinsics, class libraries, the vectorizer, and the Intel® Performance Libraries. The compilers for IA-32 processors also support the new instructions on the Intel processor code named Prescott. The compilers continue to support performance features such as Intel® MMX™ technology, not only on IA-32 processors but also in the Intel C++ Compiler for Intel PCA processors. They support development of highly-optimized multimedia applications using Intel Wireless MMX technology at three levels: Intel Wireless MMX assembler support, intrinsic support, and through a vectorizer option switch.
Multi-threading Support (OpenMP, Autoparallel)
OpenMP is an industry standard for portable multi-threaded application development, and is effective at fine grain (loop level) and large grain (function level) threading. Intel C++ compilers for IA-32 and Itanium 2 processors support OpenMP API version 2.0 and transform code for shared memory parallel programming.
Automatic Vectorizer
Intel compilers for IA-32 processors provide a vectorizer that automatically parallelizes code to maximize underlying processor capabilities. Vectorizer examples demonstrate how to increase the speed of application execution. New features include support for advanced, dynamic data alignment strategies, including loop peeling to generate aligned loads and loop unrolling to match the pre-fetch of a full cache line.
Processor Dispatch
Intel compilers for IA-32 processors offer developers the option, called processor dispatch, to build applications for a specific generation of Intel processor. Dispatch now allows for multiple specific targets, each of which takes advantage of the underlying hardware to deliver application performance. With processor dispatch, developers can build applications for the latest Intel processor — the Pentium 4 processor — while at the same time maintaining the ability for the executable to run on all previous IA-32 processors. Developers can use the latest processor performance features while still delivering high performance on older Intel architecture systems — all in one code base and one executable.

Back to Intel page

INTEL COMPILERS FOR THE INTEL ITANIUM® 2 PROCESSOR
Intel compilers offer several features that support Itanium 2 processors and improve application performance. Features include predication, branch prediction, software pipelining, speculation, and high-performance floating-point optimizations.
Predication
Other architectures implement conditional execution through branch instructions. The Itanium 2 processor architecture implements conditional execution with predicated instructions, and Intel compilers take specific advantage of it. Predication enables the complete removal of branches from program sequences, an important optimization. This results in larger basic blocks and eliminates associated mispredict penalties, both of which contribute to improved application performance. Since fewer branches exist after predication, dynamic instruction fetching is more efficient because there are fewer possibilities for control flow changes.
Software Pipelining
Intel compilers for Itanium 2 processors support software pipelining that reduces code execution time. The feature allows the processor to determine the most likely code path after a branch instruction, and, based on the prediction, the processor fetches and begins executing instructions on the selected code path. A mispredicted branch causes a delay in execution because the results of instructions executed along the wrong path must be discarded and the correct path must be fetched and executed. The Itanium 2 architecture enables Intel compilers to communicate branch information to the processor, thus reducing the number of branch mispredictions. It also enables the compiled code to manage the processor hardware using runtime information. These two features complement predication and provide performance benefits: applications with fewer branch mispredictions run faster, the performance cost from any remaining mispredicted branches is reduced, and applications have fewer cache misses. To ensure that the application is correct in all cases, Intel compilers for Itanium 2 architecture use a recovery-code process that is executed as needed.

Intel compilers for Itanium 2 processors use software pipelining to reduce the number of clock cycles necessary to process a loop. The software pipelining feature attempts to overlap loop iterations by dividing each into stages, with several instructions in each iteration stage. Because software pipelining permits multiple loop iterations without unrolling the loop, it enables one-cycle, whole-loop computations in Itanium 2-based applications. Not all loops may benefit from software pipelining; it helps to boost application performance by significantly reducing code expansion, path length and branch mispredictions.
Speculation
The speculation feature allows developers using Intel compilers to improve performance by doing some operations (for example, costly load instructions) out of sequence before they are needed. To ensure that the code is correct in all cases, the compiler executes recovery code as needed. Recovery code ensures correct execution of all affected operations if the original conjecture or speculation was false.

Back to Intel page

INTEL C++ COMPILERS
Intel C++ Compilers for Windows
The Intel C++ Compiler for Windows provides plug-in compatibility with the Microsoft Visual Studio 6.0 environment, and features improved plug-in compatibility with Visual Studio .NET*. It is source and object compatible with Microsoft Visual C++ 6.0, and is substantially native source and object code compatible with Visual C++ .NET. Standards supported include ANSI C/C++, ISO C/C++, and OpenMP 2.0 C/C++ (except WorkQueue). The Intel C++ Compiler for Windows includes a compiler for IA-32 processors, a separate compiler for Itanium 2 processors and a third compiler used for creating applications that run on Intel PCA processors using Windows CE .NET. This one product provides developers with all the compiler technology they need to build applications that span from hand-held devices, such as mobile phone and PDAs, to the server-based components of a complete solution.

The Intel C++ Compiler for eMbedded Visual C++ empowers application developers to build applications optimized for Intel PCA processors using the Intel XScale microarchitecture. The compiler includes support for Microsoft-specific intrinsic functions and provides direct access to hardware, including register and coprocessor access, using a high-level abstraction (no need to drop down to assembly code).

Intel C++ Compiler for eMbedded Visual C++ is part of Intel C++ Compiler 8.0 for Windows, which is designed for application developers. The compiler plugs into eMbedded Visual C++ and is used to create applications that run on devices using Windows CE .NET. This package also includes compilers for IA-32 and Itanium processors.
Intel C++ Compilers for Linux
The Intel C++ Compiler for Linux is compatible with GNU C/C++ (GCC) 3.2 and the C++ ABI, enabling developers to use familiar tools such as Emacs, make and more. The compiler provides threaded application development and optimization through support of the OpenMP 2.0 standard and auto-parallelism feature. The Intel C++ Compiler for Linux enables access to floating-point instructions which result in application performance gains. Interprocedural optimization (IPO) can dramatically improve application performance in programs that contain many frequently-used small- or medium-sized functions, especially programs that contain calls within loops.
INTEL FORTRAN COMPILERS
Intel Fortran Compilers for Windows
The Intel® Visual Fortran Compiler for Windows* combines Compaq Visual Fortran* (CVF) language features and Intel code generation and optimization technology to deliver the next generation Fortran for Intel architecture. It features over 250 CVF and Intel Fortran commands and synonyms to make it easy to use, plugs into Microsoft Visual Studio and includes support direct from Intel. The compiler is fully-featured Fortran 95 compliant with advanced optimizations to make Fortran applications run fast on Intel® IA-32 and Itanium 2 processors.
Intel Fortran Compilers for Linux
The Intel Fortran Compiler for Linux supports development on Linux systems by using familiar tools such as Emacs, make and more and provides mixed language support for Fortran and C. It adheres to the latest ISO Fortran 95 standard. The compiler provides threaded application development and optimization through support of the OpenMP 2.0 standard, auto-vectorization and auto-parallelism features. The product includes specific compilers for Intel Pentium, Itanium 2, and IA-32 processors and the Intel processor code named Prescott.
REQUIREMENTS

Hardware and Software
For hardware and software requirements visit Intel's Web site


§ Wireless connectivity requires additional software, services or external hardware that may need to be purchased separately. Availability of public wireless access points limited. System performance, battery life and functionality will vary depending on your specific hardware and software.

Intel provides both the tools and support to enhance the performance, functionality and efficiency of software applications.

Compatible with leading Windows* and Linux development environments, Intel Software Development Products are the fastest and easiest way to maximize the latest features of Intel processors. Designed for use in the full development cycle, Intel software products include Intel® Performance Libraries, Intel Compilers (C++, Fortran, for Windows and Linux), Intel® VTune™ analyzers, Intel® Threading Tools, and Intel® Cluster Tools.

Intel® Premier Customer Support Web site provides expert technical support for all Intel software products, product updates and related downloads.

Intel, the Intel logo, Itanium, Pentium, Intel Centrino, Intel Xeon, Intel XScale, VTune, Celeron, Intel NetBurst, and MMX are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
*Other brands and names may be claimed as the property of others.
© 2004, Intel Corporation.

Back to Intel page