Intel C++ Compiler - Optimizations

Optimizations

Intel compilers are optimized to computer systems using processors that support Intel architectures. They are designed to minimize stalls and to produce code that executes in the fewest possible number of cycles. The Intel C++ Compiler supports three separate high-level techniques for optimizing the compiled program: interprocedural optimization (IPO), profile-guided optimization (PGO), and high-level optimizations (HLO). It also supports tools, techniques and language extensions, such as Intel Cilk Plus, for adding and maintaining application parallelism on IA-32 and Intel 64 processors, and enabling application offloading to Intel coprocessors, such as the Intel Xeon Phi coprocessor.

Intel Cilk Plus adds language extensions to C++ to express data and task-parallelism. Cilk_spawn and Cilk_sync are keywords to enable task parallelism and the Cilk_for keyword enables parallelization of for loops. It also provides vector notation with array notations and elemental function capabilities.

Profile-guided optimization refers to a mode of optimization where the compiler is able to access data from a sample run of the program across a representative input set. The data would indicate which areas of the program are executed more frequently, and which areas are executed less frequently. All optimizations benefit from profile-guided feedback because they are less reliant on heuristics when making compilation decisions.

High-level optimizations are optimizations performed on a version of the program that more closely represents the source code. This includes loop interchange, loop fusion, loop unrolling, loop distribution, data prefetch, and more.

Interprocedural optimization applies typical compiler optimizations (such as constant propagation) but using a broader scope that may include multiple procedures, multiple files, or the entire program.

With the September 5, 2012 launch (the 13.0 launch), the Windows-based releases of Intel Parallel Studio XE and Intel C++ Studio XE, each of which include Intel C++, also include a performance guide. This is a GUI-based compiler tool that provides step-by-step advice concerning changes to code that could result in improved application performance.

Intel's compiler has been criticized for applying, by default, floating-point optimizations not allowed by the C standard and that require special flags with other compilers such as gcc.

Read more about this topic:  Intel C++ Compiler