Sign up or log in to save this to your schedule and see who's attending!

Currently, LoopVectorizer in LLVM is specialized in auto-vectorizing innermost loops. SIMD and DECLARE SIMD constructs introduced in OpenMP4.0 and enhanced in OpenMP4.5 are gaining popularity among performance hungry programmers due to the ability to specify a vectorization region much larger in scope than the traditional inner loop auto-vectorization would handle and also due to several advanced vectorizing compilers delivering impressive performance for such constructs. Hence, there is a growing interest in LLVM developer community in improving LoopVectorizer in order to adequately support OpenMP functionalities such as outer loop vectorization and whole function vectorization. In this Technical Talk, we discuss our approaches in achieving that goal through a series of incremental steps and further extending it for outer loop auto-vectorization.

15 years focused on shared memory parallelism followed by 10 years focused on vectorization for IA32/Intel64 SIMD extensions. SPEC HPG rep from Intel (2001-2007), involved in the development of SPEC OMP2001, HPC2002, and MPI2007 benchmarks.