Path splitting--a technique for improving data flow analysis

Massimiliano Poletto · DSpace@MIT (Massachusetts Institute of Technology) · 1995

Path splitting is a new technique for improving the amount of data flow information statically available to the compiler about a fragment of code. Path splitting replicates code in order to provide optimal reaching definitions information within given regions of the control flow graph. This improved information is used to extend the applicability of various classical code optimizations, including copy and constant propagation, common subexpression elimination, dead code elimination, and code hoisting. In addition, path splitting can contribute to decreasing register pressure, and creates long instruction sequences potentially useful for trace scheduling. Path splitting was implemented in the SUIF compiler. Experimental results indicate that path splitting effectively restructures loops, modifying the control flow graph so as to improve data flow information and hence enable further "classical" optimizations. Path splitting can decrease the cycle count of loops by over a factor of two. ...

Read the paper · More papers on PaperTik