Simplifying control flow in compiler-generated parallel code [chapter]

John Mellor-Crummey, Vikram Adve
1998 Lecture Notes in Computer Science  
Complex conditional control-ow can be an important source of overhead in compiler-generated parallel code for data-parallel programs. Optimizing compilers for data-parallel languages such as High Performance Fortran (HPF) perform a complex sequence of transformations to optimize the performance of the generated code. It would be complicated and expensive for each transformation step to fully account for the results of all others. Thus, one transformation may introduce conditional control-ow
more » ... ing predicates on integer values that a later transformation may render unnecessary. Here we describe a pair of algorithms that compute symbolic constraints on values of integer variables and use them to remove such unnecessary conditional control ow. These algorithms have been implemented in the Rice dHPF compiler. We show that these algorithms are e ective in reducing the number of conditionals, code size, and overall execution time for code generated by dHPF. Finally, we describe a synergy between control ow simpli cation and code generation based on loop splitting that achieves the e ects of more narrow optimizations such as vector message pipelining and the use of overlap areas.
doi:10.1007/bfb0032695 fatcat:4zmhac63g5chflz6uf6dkc6xby