Ralf Karrenberg presents Whole-Function Vectorization (WFV), an approach that allows a compiler to automatically create code that exploits data-parallelism using SIMD instructions. Data-parallel applications such as particle simulations, stock option price estimation or video decoding require the same computations to be performed on huge amounts of data. Without WFV, one processor core executes a single instance of a data-parallel function. WFV transforms the function to execute multiple instances at once using SIMD instructions. The author describes an advanced WFV algorithm that includes a variety of analyses and code generation techniques. He shows that this approach improves the performance of the generated code in a variety of use cases.
"This dissertation investigates whole function vectorization, which is an automatic procedure to optimize intermediate scalar compiler code for SIMD (single-instruction multiple-date) architectures. ... The thesis is well written and easily understandable by anyone with at least some background in compilation. Examples are generously provided to illustrate the major notions and pseudo-code is presented for all major procedures." (Andreas Maletti, Mathematical Reviews, March, 2016)