Title
LLVM Framework and IR Extensions for Parallelization, SIMD Vectorization and Offloading.
Abstract
LLVM has become an integral part of the software-development ecosystem for developing advanced compilers, high-performance computing software and tools. This paper presents a small set of LLVM IR extensions for explicitly parallel vector, and offloading program constructs The proposed LLVM IR extensions enable the lowering and transformation in the LLVM middle-end for the OpenMP® C/C++ and Fortran API, and any other explicitly parallel/simd constructs in high-level source languages. This paper discusses the rationale of the LLVM IR extensions to support OpenMP constructs and clauses, and presents the LLVM intrinsic functions, the framework for parallelization, vectorization, and offloading, and the sandwich scheme to model the OpenMP parallel, simd, offloading and data-attribute semantics under the SSA form. Examples are given to show our implementation in the LLVM middle-end passes, which paves the way to achieve a better interaction with scalar optimizations, vectorization, and loop optimizations, and thus resulting in higher performance.
Year
DOI
Venue
2016
10.1109/LLVM-HPC.2016.8
LLVM-HPC@SC
Keywords
DocType
ISBN
multi- and many-core processors,accelerators,LLVM,OpenMP,parallelization,vectorization,offloading
Conference
978-1-5090-3879-4
Citations 
PageRank 
References 
0
0.34
0
Authors
7
Name
Order
Citations
PageRank
Xinmin Tian159652.92
Hideki Saito217714.88
Ernesto Su340.81
Abhinav Gaba440.81
Matt Masten5292.13
Eric N. Garcia600.34
Ayal Zaks700.34