Itanium Architecture for Software Developers

The Itanium architecture was specifically designed with compilers in mind. Compilers are a critical element in implementing high performance application code. They identify and exploit opportunities for parallel execution in the application code, revise and reorder code for parallel execution, and communicate information via hints and instructions to the processor to facilitate high performance. The process by which the compiler modifies application code so that it performs better is known as optimization.
Many vendors offer various Itanium compilers to compile different programming languages and support various operating systems. This chapter explains the internals of the Intel compilers. This explanation serves as an overview of the things a compiler for the Itanium processor can be expected to do. Designs for compilers from other companies will undoubtedly vary, but the concepts will be similar, as will be many of the solutions. Information on the Intel compilers can be found at www.intel.com and developer.intel.com/vtune on the web.
Intel provides C++ and Fortran compilers for the Itanium processor. These compilers utilize the advanced features of the Itanium architecture to maximize application performance by:
Decreasing overhead in memory accesses.
Reducing the number of branches and the penalty overhead associated with branches.
Increasing instruction level parallelism.
Memory access overhead is decreased through speculation and the use of the large number of registers. Delays due to branching are reduced by the use of predication. Instruction level parallelism is increased by the scheduling techniques that consider large amounts of...