Publication | Open Access
Making graphs reducible with controlled node splitting
47
Citations
13
References
1997
Year
Cluster ComputingEngineeringCompiler TechnologyNode SplittingComputer ArchitectureNetwork AnalysisSoftware EngineeringSoftware AnalysisStructural Graph TheoryControl Flow GraphsSystems EngineeringControlled NodeParallel ComputingCombinatorial OptimizationCompilersSocial Network AnalysisParallelizing CompilerCompiler SupportComputer EngineeringComputer ScienceControl Flow GraphOptimizing CompilerGraph AlgorithmNetwork ScienceGraph TheoryProgram AnalysisBusinessParallel ProgrammingParallel Programming ModelGraph Analysis
Several compiler optimizations, such as data flow analysis, the exploitation of instruction-level parallelism (ILP), loop transformations, and memory disambiguation, require programs with reducible control flow graphs. However, not all programs satisfy this property. A new method for transforming irreducible control flow graphs to reducible control flow graphs, called Controlled Node Splitting (CNS), is presented. CNS duplicates nodes of the control flow graph to obtain reducible control flow graphs. CNS results in a minimum number of splits and a minimum number of duplicates. Since the computation time to find the optimal split sequence is large, a heuristic has been developed. The results of this heuristic are close to the optimum. Straightforward application of node splitting resulted in an average code size increase of 235% per procedure of our benchmark programs. CNS with the heuristic limits this increase to only 3%. The impact on the total code size of the complete programs is 13.6% for a straightforward application of node splitting. However, when CNS is used, with the heuristic the average growth in code size of a complete program dramatically reduces to 0.2%
| Year | Citations | |
|---|---|---|
Page 1
Page 1