Int J Performability Eng ›› 2019, Vol. 15 ›› Issue (11): 2871-2881.doi: 10.23940/ijpe.19.11.p5.28712881

Previous Articles     Next Articles

Coarse-Grained Automatic Parallelization Approach for Branch Nested Loop

Hui Liua,b,c, Jinlong Xuc, *, and Lili Dingc   

  1. aCollege of Computer and Information Engineering, Henan Normal University, Xinxiang, 453007, China;
    bEngineering Technology Research Center for Computing Intelligence and Data Mining in Henan Province, Xinxiang, 453007, China;
    cState Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou, 450001, China
  • Submitted on ; Revised on ; Accepted on
  • Contact: * E-mail address: xujinlong_pla@126.com
  • About author:Hui Liu graduated from the State Key Laboratory of Mathematical Engineering and Advanced Computing at PLA Information Engineering University with a Ph.D. She is currently a lecturer in the College of Computer and Information Engineering at Henan Normal University. Her research interests include high performance computing, program performance optimization, and compiler optimization.Jinlong Xu graduated from the State Key Laboratory of Mathematical Engineering and Advanced Computing at PLA Information Engineering University with a Ph.D. He currently works there as a lecturer. His research interests include high performance computing, program performance optimization, and compiler optimization.Lili Ding graduated from the State Key Laboratory of Mathematical Engineering and Advanced Computing at PLA Information Engineering University with a master's degree. Her current research interests include high performance computing and program performance analysis.

Abstract: GCC compiler is a retargetable compiler program that was developed to increase the efficiency of programs in the GNU system. In recent years, compiler optimization based on data dependency analysis has become an important research area of modern compilers. Existing GCC compilers can only conduct dependency analysis on perfect nested loops. In order to better explore the coarse-grained parallelism of the nested loops, we propose a dependence test method that can deal with the branch nested loops. Firstly, we identify the branch nested loop in the programs. Then, we analyze the relationship between the array subscript and the outer index variable of the branch nested loop. Finally, we calculate the distance vector of the outer loop index variable and determine whether the loop has dependence through distance vector detection. Experimental results show that our method can correctly and effectively analyze the dependence relationship of branch nested loops.

Key words: data dependence analysis, GCC, perfect nested loop, branch nested loops