The growing popularity of multimedia extensions has renewed the interest in vectorizing compilers. The Software Vectorization Handbook provides a detailed overview of compiler optimizations that convert sequential code into a form that best exploits multimedia extensions.
This book is written for compiler engineers and programmers of scientific, engineering, and multimedia applications who are interested in learning the latest techniques for improving software performance. The primary focus is on the C programming language and multimedia extensions to the Intel® Architecture, although most conversion methods are easily generalized to other imperative programming languages and multimedia instruction sets.
Topics discussed range from traditional data dependence analysis and loop-oriented vectorization to more multimedia-oriented alignment optimizations and vectorization of straight-line code. All presented optimizations are available in the high performance Intel® C++/Fortran compilers that support automatic vectorization for MMX™ technology and the Streaming SIMD Extensions (SSE). The book also includes guidelines on how to use these compilers to take advantage of multi-media extensions with a minimum of engineering effort.