Programming Itanium-based Systems: Developing High Performance Applications for Intel's New Architecture

Chapter 1 presented an overview of the program development process for a software application. In this chapter, we introduce the tools for creating an executable Itanium program. The simplicity of the Itanium architecture forces its compiler to be a lot smarter than the processor. The EPIC philosophy transfers to the compiler the job of optimizing the instructions and extracting parallelism. This in turn means that the job of the compiler engineer and to some extent the application programmer in compiling source code for an Itanium processor has become more complex than it was for older architectures. Here the compiling and linking tools are covered in detail. Greater attention is given to compiling, because it plays the most important role in the creation of an executable file.
Developing the sophisticated compilers required by the Itanium architecture is not an easy task. This is because the processor makes no scheduling decisions. It can only follow orders issued by the compiler. C/C++ and Fortran90 programs are both compiled for the Itanium processor with the Intel enhanced compilers (ecl and efl). An Itanium C/C++ compiler is also available from Microsoft Corporation.
This compiler must fully understand data dependencies between instructions, and be aware of the associated resources available in the Itanium processor. It must work within these constraints to produce a stream of operations that is as efficient and parallel as possible. That is, the operations that can occur in parallel are statically determined and ordered by the compiler for...