Abstract | ||
---|---|---|
Currently, multicore processors widely spread and many computers can improve processing performance by multithreading. However, many programs are still processed sequentially, and they do not make full use of their parallelism. To solve this problem, it is quite promising to automatically parallelize the binary code of the program by using binary translation techniques. Based on this background, we have proposed a system that automatically optimizes and parallelizes a binary code using LLVM. In this paper, we design the IRlevel parallelization directives for the LLVM infrastructure and implement them in LLVM. This allows us to independently develop the compilation pass of code analysis and the pass of the code generation for parallelization. The separation of code analysis and code generation can realize the ease of the reuse of them. Evaluation results show that our LLVM compiler pass can generate parallelized IR code from sequential IR code with IRlevel parallelization directives. The parallelized IR code achieved speedup as highly as the parallelized source code using OpenMP. |
Year | DOI | Venue |
---|---|---|
2019 | 10.1109/SNPD.2019.8935667 | 2019 20th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD) |
Keywords | Field | DocType |
LLVM,loop parallelization,IR code,parallelization directives | Static program analysis,Multithreading,Computer science,Source code,Parallel computing,Binary code,Code generation,Compiler,Binary translation,Speedup | Conference |
ISBN | Citations | PageRank |
978-1-7281-1652-5 | 0 | 0.34 |
References | Authors | |
3 | 5 |
Name | Order | Citations | PageRank |
---|---|---|---|
Kengo Jingu | 1 | 0 | 0.68 |
Kohta Shigenobu | 2 | 0 | 1.01 |
Kanemitsu Ootsu | 3 | 44 | 23.90 |
Takeshi Ohkawa | 4 | 21 | 16.24 |
Takashi Yokota | 5 | 41 | 21.70 |