TY - GEN
T1 - Syntax-directed divide-and-conquer data-flow analysis
AU - Sato, Shigeyuki
AU - Morihata, Akimasa
N1 - Publisher Copyright:
© Springer International Publishing Switzerland 2014.
PY - 2014
Y1 - 2014
N2 - Link-time optimization, with which GCC and LLVM are equipped, generally deals with large-scale procedures because of aggressive procedure inlining. Data-flow analysis (DFA), which is an essential computation for compiler optimization, is therefore desired to deal with large-scale procedures. One promising approach to the DFA of largescale procedures is divide-and-conquer parallelization. However, DFA on control-flow graphs is difficult to divide and conquer. If we perform DFA on abstract syntax trees (ASTs) in a syntax-directed manner, the divide and conquer of DFA becomes straightforward, owing to the recursive structure of ASTs, but then nonstructural control flow such as goto/label becomes a problem. In order to resolve it, we have developed a novel syntax-directed method of DFA on ASTs that can deal with goto/label and is ready to divide-and-conquer parallelization. We tested the feasibility of our method experimentally through prototype implementations and observed that our prototype achieved a significant speedup.
AB - Link-time optimization, with which GCC and LLVM are equipped, generally deals with large-scale procedures because of aggressive procedure inlining. Data-flow analysis (DFA), which is an essential computation for compiler optimization, is therefore desired to deal with large-scale procedures. One promising approach to the DFA of largescale procedures is divide-and-conquer parallelization. However, DFA on control-flow graphs is difficult to divide and conquer. If we perform DFA on abstract syntax trees (ASTs) in a syntax-directed manner, the divide and conquer of DFA becomes straightforward, owing to the recursive structure of ASTs, but then nonstructural control flow such as goto/label becomes a problem. In order to resolve it, we have developed a novel syntax-directed method of DFA on ASTs that can deal with goto/label and is ready to divide-and-conquer parallelization. We tested the feasibility of our method experimentally through prototype implementations and observed that our prototype achieved a significant speedup.
KW - Closed semiring
KW - Divide and conquer
KW - Syntax-directed
UR - http://www.scopus.com/inward/record.url?scp=84910002427&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84910002427&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-12736-1_21
DO - 10.1007/978-3-319-12736-1_21
M3 - Conference contribution
AN - SCOPUS:84910002427
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 392
EP - 407
BT - Programming Languages and Systems - 12th Asian Symposium, APLAS 2014, Proceedings
A2 - Garrigue, Jacques
PB - Springer Verlag
T2 - 12th Asian Symposium on Programming Languages and Systems, APLAS 2014
Y2 - 17 November 2014 through 19 November 2014
ER -