User`s guide
Compiler Overview [7]
This chapter provides an overview of the Cray XMT compilers. You need to
understand these concepts before you compile your program.
The Cray XMT platform includes Cray XMT compilers for C and C++ applications.
These compilers optimize programs to improve performance. These features include:
Debugging support
The Cray XMT compilers support multiple levels of debugging.
Each level receives some degree of optimization, but the level of
optimization decreases as the level of debugging support increases.
For example, the compilation process suppresses parallelization of
loops at the highest debugging level.
Optimization
The Cray XMT compilers optimize parallelization, loop
restructuring, and software pipelining, in addition to the classical
scalar optimizations.
Inlining The Cray XMT compilers support automatic and
programmer-directed inlining within source files and
among multiple source files. In addition, the compilers support
inlining from separately compiled libraries. For a discussion of
inlining, see Inlining Functions on page 84.
Incremental recompiling and relinking
The Cray XMT compiler detects unmodified functions and avoids
recompiling them, even when other functions in the same file have
been changed. The Cray XMT compiler uses incremental linking
to avoid relinking an entire executable when some, but not all, of
the functions have been modified.
Each compiler is organized as a language-dependent front end. Both compilers use a
common set of backend subprograms for translating, optimizing, and linking. The
Cray XMT C compiler supports ANSI X3.159-1989 standard C. The Cray XMT
C++ compiler supports the draft ISO/IEC 14882 C++ standard. Because of the
commonality between the Cray XMT C and C++ compilers, they are referred to
collectively as the compiler in the remainder of this chapter.
S–2479–20 75