发明名称 |
Method and system for automated improvement of parallelism in program compilation |
摘要 |
A method of program compilation to improve parallelism during the linking of the program by a compiler. The method includes converting statements of the program to canonical form, constructing abstract syntax tree (AST) for each procedure in the program, and traversing the program to construct a graph by making each non-control flow statement and each control structure into at least one node of the graph. |
申请公布号 |
US9182957(B2) |
申请公布日期 |
2015.11.10 |
申请号 |
US201313929649 |
申请日期 |
2013.06.27 |
申请人 |
|
发明人 |
Craymer Loring |
分类号 |
G06F9/44;G06F9/45 |
主分类号 |
G06F9/44 |
代理机构 |
Nicholson De Vos Webster & Elliott, LLP |
代理人 |
Nicholson De Vos Webster & Elliott, LLP |
主权项 |
1. A computer implemented method of program compilation to improve parallelism during the linking of the program by a compiler, the method comprising:
converting statements of the program to canonical form; constructing abstract syntax tree (AST) for each procedure in the program; traversing the program to construct a functional dataflow graph, in which an assignment statement or function call is represented as a node, a control flow decision is represented by a first set of nodes, or an array or set is represented as a second set of nodes and in which edges of the functional dataflow graph represent typed data; identifying at least one loop in the functional dataflow graph that can be executed in parallel; transforming the at least one loop to a set operation by retyping connections between nodes of the functional dataflow graph; parsing code of the program to identify control structures that govern alternative statements; and converting each control structure into a sub-graph with conditioning function and with alternative statements represented as separate paths in the graph that later merge and loop. |
地址 |
|