Title
An Implementation of LLVM Pass for Loop Parallelization Based on IR-Level Directives
Abstract
Currently, multicore processors are widely used, and processing performance can be improved on many machines by exploiting thread level parallelism. However, for parallelizing a program, it takes much time and effort to analyze effect of parallel processing and to rewrite the source code, so sequential programs still remain around the world, and they can not fully bring out performance of multicore processors. To improve execution performance of existing sequential programs by effectively utilizing processing power of multicore processors, it is quite useful to automatically and directly parallelize a machine language code (binary code) by using binary translation. Based on this background, an automatic parallel processing system that parallelizes and optimizes a sequential binary code using LLVM was proposed. In this paper, we introduce parallelization directives for LLVM IR (Intermediate Representation), and implement an LLVM compiler pass for parallel code generation based on the directives. Our research makes it possible to implement analysis and code generation as versatile programs, and to generate an optimal code according to the multiple analysis results. Evaluation results show that the implemented pass can generate a parallelized IR code and can achieve speedup as highly as the parallelization using source code does.
Year
DOI
Venue
2018
10.1109/CANDARW.2018.00097
2018 Sixth International Symposium on Computing and Networking Workshops (CANDARW)
Keywords
Field
DocType
LLVM,loop parallelization,IR code,parallelization directives
Computer science,Source code,Task parallelism,Parallel computing,Binary code,Code generation,Compiler,Binary translation,Machine code,Speedup
Conference
ISBN
Citations 
PageRank 
978-1-5386-9185-4
0
0.34
References 
Authors
1
5
Name
Order
Citations
PageRank
Kengo Jingu100.68
Kohta Shigenobu201.01
Kanemitsu Ootsu34423.90
Takeshi Ohkawa42116.24
Takashi Yokota54121.70