TY - GEN
T1 - Construction of GCCFG for inter-procedural optimizations in Software Managed Manycore (SMM) architectures
AU - Holton, Bryce
AU - Bai, Ke
AU - Shrivastava, Aviral
AU - Ramaprasad, Harini
PY - 2014/10/12
Y1 - 2014/10/12
N2 - SoftwareManagedManycore (SMM) architectures-in which each core has only a scratch pad memory (instead of caches),-are a promising solution for scaling memory hierarchy to hundreds of cores. However, in these architectures, the code and data of the tasks mapped to the cores must be explicitly managed in the software by the compiler. State-of-the-art compiler techniques for SMM architectures require inter-procedural information and analysis. A call graph of the program does not have enough information, and Global CFG, i.e., combining all the control Flow graphs of the program has too much information, and becomes too big. As a result, most new techniques have informally defined and used GCCFG (Global Call Control Flow Graph)-a whole program representation which captures the control-Flow as well as function call information in a succinct way-to perform inter-procedural analysis. However, how to construct it has not been shown yet. We find that for several simple call and control flow graphs, constructing GCCFG is relatively straightforward, but there are several cases in common applications where unique graph transformation is needed in order to formally and correctly construct the GCCFG. This paper fills this gap, and develops graph transformations to allow the construction of GCCFG in (almost) all cases. Our experiments show that by using succinct representation (GCCFG) rather than elaborate representation (GlobalCFG), the compilation time of state-of-the-art code management technique [4] can be improved by an average of 5X, and that of stack management [20] can be improved by an average of 4X.
AB - SoftwareManagedManycore (SMM) architectures-in which each core has only a scratch pad memory (instead of caches),-are a promising solution for scaling memory hierarchy to hundreds of cores. However, in these architectures, the code and data of the tasks mapped to the cores must be explicitly managed in the software by the compiler. State-of-the-art compiler techniques for SMM architectures require inter-procedural information and analysis. A call graph of the program does not have enough information, and Global CFG, i.e., combining all the control Flow graphs of the program has too much information, and becomes too big. As a result, most new techniques have informally defined and used GCCFG (Global Call Control Flow Graph)-a whole program representation which captures the control-Flow as well as function call information in a succinct way-to perform inter-procedural analysis. However, how to construct it has not been shown yet. We find that for several simple call and control flow graphs, constructing GCCFG is relatively straightforward, but there are several cases in common applications where unique graph transformation is needed in order to formally and correctly construct the GCCFG. This paper fills this gap, and develops graph transformations to allow the construction of GCCFG in (almost) all cases. Our experiments show that by using succinct representation (GCCFG) rather than elaborate representation (GlobalCFG), the compilation time of state-of-the-art code management technique [4] can be improved by an average of 5X, and that of stack management [20] can be improved by an average of 4X.
UR - http://www.scopus.com/inward/record.url?scp=85116177351&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85116177351&partnerID=8YFLogxK
U2 - 10.1145/2656106.2656122
DO - 10.1145/2656106.2656122
M3 - Conference contribution
AN - SCOPUS:85116177351
T3 - 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2014
BT - 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2014
PB - Association for Computing Machinery
T2 - 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2014
Y2 - 12 October 2014 through 17 October 2014
ER -