The Interprocedural Express-Lane Transformation

The express-lane transformation isolates and duplicates frequently executed program paths, aiming for better data-flow facts along the duplicated paths. An express-lane p is a copy of a frequently executed program path such that p has only one entry point at its beginning; p may have branches back to the original code, but the original code never branches into p. Classical data-flow analysis is likely to find sharper data-flow facts along an express-lane, because there are no join points. This paper describes several variants of interprocedural express-lane transformations; these duplicate hot interprocedural paths, i.e., paths that may cross procedure boundaries. The paper also reports results from an experimental study of the effects of the express-lane transformation on interprocedural range analysis.

[1]  Alfred V. Aho,et al.  Algorithms for Finding Patterns in Strings , 1991, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.

[2]  Michael D. Smith,et al.  Path-based compilation , 1998 .

[3]  Massimiliano Antonio Poletto,et al.  Path splitting--a technique for improving data flow analysis , 1995 .

[4]  James R. Larus,et al.  Improving data-flow analysis with path profiles , 1998, PLDI.

[5]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[6]  David B. Whalley,et al.  Avoiding unconditional jumps by code replication , 1992, PLDI '92.

[7]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

[8]  Rajiv Gupta,et al.  Path-sensitive, value-flow optimizations of programs (program analysis) , 1999 .

[9]  Richard E. Hank,et al.  Region-based compilation , 1996 .

[10]  Rajiv Gupta,et al.  Interprocedural conditional branch elimination , 1997, PLDI '97.

[11]  James R. Larus,et al.  Efficient path profiling , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[12]  David Melski,et al.  Interprocedural path profiling and the interprocedural express-lane transformation , 2002 .

[13]  Joseph A. Fisher,et al.  Trace Scheduling: A Technique for Global Microcode Compaction , 1981, IEEE Transactions on Computers.

[14]  Thomas W. Reps,et al.  Interprocedural Path Profiling , 1999, CC.

[15]  Scott A. Mahlke,et al.  Using profile information to assist classic code optimizations , 1991, Softw. Pract. Exp..