PATH-SENSITIVE, VALUE-FLOW OPTIMIZATIONS OF PROGRAMS

[1]  Wen-mei W. Hwu,et al.  Modulo scheduling of loops in control-intensive non-numeric programs , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[2]  Keith D. Cooper,et al.  Register promotion in C programs , 1997, PLDI '97.

[3]  D. Tullsen,et al.  Profile Guided Load Marking for Memory Renaming , 1998 .

[4]  Jeffrey D. Ullman,et al.  Monotone data flow analysis frameworks , 1977, Acta Informatica.

[5]  Wen-mei W. Hwu,et al.  IMPACT: an architectural framework for multiple-instruction-issue processors , 1991, [1991] Proceedings. The 18th Annual International Symposium on Computer Architecture.

[6]  Chau-Wen Tseng,et al.  Compiler optimizations for improving data locality , 1994, ASPLOS VI.

[7]  Michael D. Smith,et al.  A comparative analysis of schemes for correlated branch prediction , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[8]  Etienne Morel,et al.  Global optimization by suppression of partial redundancies , 1979, CACM.

[9]  James E. Smith,et al.  The performance potential of data dependence speculation and collapsing , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[10]  James R. Larus,et al.  Optimally profiling and tracing programs , 1994, TOPL.

[11]  Lance M. Berc,et al.  Continuous profiling: where have all the cycles gone? , 1997, TOCS.

[12]  Michael Wolfe,et al.  Elimination of redundant array subscript range checks , 1995, PLDI '95.

[13]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[14]  Linda Torczon,et al.  Interprocedural constant propagation: a study of jump function implementation , 1993, PLDI '93.

[15]  Stephen Richardson,et al.  Interprocedural analysis vs. procedure integration , 1989, Inf. Process. Lett..

[16]  Arthur B. Maccabe,et al.  The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages , 1990, PLDI '90.

[17]  Joseph A. Fisher,et al.  Predicting conditional branch directions from previous runs of a program , 1992, ASPLOS V.

[18]  Rajiv Gupta A fresh look at optimizing array bound checking , 1990, PLDI '90.

[19]  Amer Diwan,et al.  Type-based alias analysis , 1998, PLDI.

[20]  Manfred P. Stadel,et al.  A variation of Knoop, Rüthing, and Steffen's Lazy Code Motion , 1993, SIGP.

[21]  Richard E. Hank,et al.  Region-based compilation: an introduction and motivation , 1995, MICRO 1995.

[22]  Andreas Krall,et al.  Improving semi-static branch prediction by code replication , 1994, PLDI '94.

[23]  Jens Knoop Optimal Interprocedural Program Optimization: A New Framework and Its Application , 1999 .

[24]  J. Knoop,et al.  Lazy Strength Reduction , 1993 .

[25]  Andrew Ayers,et al.  Scalable cross-module optimization , 1998, PLDI '98.

[26]  Yale N. Patt,et al.  A two-level approach to making class predictions , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[27]  Scott A. Mahlke,et al.  The superblock: An effective technique for VLIW and superscalar compilation , 1993, The Journal of Supercomputing.

[28]  Michael D. Smith,et al.  Improving the accuracy of static branch prediction using branch correlation , 1994, ASPLOS VI.

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

[30]  Rajiv Gupta,et al.  Refining data flow information using infeasible paths , 1997, ESEC '97/FSE-5.

[31]  Ken Kennedy,et al.  Improving the ratio of memory operations to floating-point operations in loops , 1994, TOPL.

[32]  Mikko H. Lipasti,et al.  The Performance Potential of Value and Dependence Prediction , 1997, Euro-Par.

[33]  Dhananjay M. Dhamdhere Practical adaption of the global optimization algorithm of Morel and Renvoise , 1991, TOPL.

[34]  Trevor N. Mudge,et al.  Correlation and Aliasing in Dynamic Branch Predictors , 1996, ISCA.

[35]  Scott A. Mahlke,et al.  Profile‐guided automatic inline expansion for C programs , 1992, Softw. Pract. Exp..

[36]  Bernhard Steffen,et al.  The Value Flow Graph: A Program Representation for Optimal Program Transformations , 1990, ESOP.

[37]  Ken Kennedy,et al.  Procedure cloning , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[38]  Brian N. Bershad,et al.  Fast, effective dynamic compilation , 1996, PLDI '96.

[39]  Ken Kennedy,et al.  Improving register allocation for subscripted variables , 1990, PLDI '90.

[40]  Barry K. Rosen,et al.  Qualified Data Flow Problems , 1980, IEEE Transactions on Software Engineering.

[41]  Guang R. Gao,et al.  A linear time algorithm for placing φ-nodes , 1995, POPL '95.

[42]  Henk Corporaal,et al.  Controlled Node Splitting , 1996, CC.

[43]  R. N. Horspool,et al.  Partial redundancy elimination driven by a cost-benefit analysis , 1997, Proceedings of the Eighth Israeli Conference on Computer Systems and Software Engineering.

[44]  David B. Whalley,et al.  Avoiding conditional branches by code replication , 1995, PLDI '95.

[45]  Rajiv Gupta,et al.  A practical data flow framework for array reference analysis and its use in optimizations , 1993, PLDI '93.

[46]  Scott Mahlke,et al.  Effective compiler support for predicated execution using the hyperblock , 1992, MICRO 1992.

[47]  Charles Consel,et al.  Efficient incremental run-time specialization for free , 1999, PLDI '99.

[48]  Thomas Ball,et al.  Edge profiling versus path profiling: the showdown , 1998, POPL '98.

[49]  Fred C. Chow,et al.  Register Promotion by Sparse Partial Redundancy Elimination ofLoads and StoresRaymond , 1998 .

[50]  Ken Kennedy,et al.  Practical dependence testing , 1991, PLDI '91.

[51]  J. Larus Whole program paths , 1999, PLDI '99.

[52]  M. Wegman,et al.  Global value numbers and redundant computations , 1988, POPL '88.

[53]  Andrew Ayers,et al.  Aggressive inlining , 1997, PLDI '97.

[54]  B. Ramakrishna Rau,et al.  Data Flow and Dependence Analysis for Instruction Level Parallelism , 1991, LCPC.

[55]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[56]  Rajiv Gupta,et al.  Load-reuse analysis: design and evaluation , 1999, PLDI '99.

[57]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[58]  Rastislav Bodík,et al.  Path-sensitive value-flow analysis , 1998, POPL '98.

[59]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[60]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[61]  Susan J. Eggers,et al.  A case for runtime code generation , 1993 .

[62]  Ben Wegbreit,et al.  Property extraction in well-founded property sets , 1975, IEEE Transactions on Software Engineering.

[63]  Bernhard Steffen,et al.  Property-Oriented Expansion , 1996, SAS.

[64]  Raymond Lo,et al.  Register promotion by sparse partial redundancy elimination of loads and stores , 1998, PLDI.

[65]  Vasanth Bala,et al.  Transparent Dynamic Optimization: The Design and Implementation of Dynamo , 1999 .

[66]  Bernhard Steffen,et al.  Optimal code motion: theory and practice , 1994, TOPL.

[67]  Jack W. Davidson,et al.  A study of a C function inliner , 1988, Softw. Pract. Exp..

[68]  Keith D. Cooper,et al.  Effective partial redundancy elimination , 1994, PLDI '94.

[69]  Rajiv Gupta,et al.  A practical framework for demand-driven interprocedural data flow analysis , 1997, TOPL.

[70]  Rajiv Gupta,et al.  Path profile guided partial dead code elimination using predication , 1997, Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques.

[71]  Michael D. Smith,et al.  Ephemeral Instrumentation for Lightweight Program Profiling , 1997 .

[72]  Woody Lichtenstein,et al.  The multiflow trace scheduling compiler , 1993, The Journal of Supercomputing.

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

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

[75]  David A. Padua,et al.  Gated SSA-based demand-driven symbolic analysis for parallelizing compilers , 1995, ICS '95.

[76]  Christopher W. Fraser,et al.  A Retargetable C Compiler: Design and Implementation , 1995 .

[77]  Andrew A. Chien,et al.  Precise concrete type inference for object-oriented languages , 1994, OOPSLA 1994.

[78]  Mike Johnson,et al.  Superscalar microprocessor design , 1991, Prentice Hall series in innovative technology.

[79]  Mark N. Wegman,et al.  An efficient method of computing static single assignment form , 1989, POPL '89.

[80]  Bernhard Steffen,et al.  Partial dead code elimination , 1994, PLDI '94.

[81]  John H. Reif,et al.  Symbolic evaluation and the global value graph , 1977, POPL.

[82]  G. Ramalingam Data flow frequency analysis , 1996, PLDI '96.

[83]  Cliff Click,et al.  Global code motion/global value numbering , 1995, PLDI '95.

[84]  Raymond Lo,et al.  A new algorithm for partial redundancy elimination based on SSA form , 1997, PLDI '97.

[85]  Gurindar S. Sohi,et al.  Understanding the differences between value prediction and instruction reuse , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[86]  Rajiv Gupta,et al.  Demand-driven computation of interprocedural data flow , 1995, POPL '95.

[87]  G. Ramalingam,et al.  The undecidability of aliasing , 1994, TOPL.

[88]  Ken Kennedy,et al.  Scalar replacement in the presence of conditional control flow , 1994, Softw. Pract. Exp..

[89]  Manfred P. Stadel,et al.  A solution to a problem with Morel and Renvoise's “Global optimization by suppression of partial redundancies” , 1988, TOPL.

[90]  Dhananjay M. Dhamdhere,et al.  A composite algorithm for strength reduction and code movement optimization , 2004, International Journal of Computer & Information Sciences.

[91]  Urs Hölzle,et al.  Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages , 1995, OOPSLA.

[92]  Andrew A. Chien,et al.  Type Directed Cloning for Object-Oriented Programs , 1995, LCPC.

[93]  Rajiv Gupta,et al.  Partial dead code elimination using slicing transformations , 1997, PLDI '97.

[94]  Rajiv Gupta,et al.  Resource-sensitive profile-directed data flow analysis for code optimization , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[95]  Thomas W. Reps,et al.  Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation , 1995, TAPSOFT.

[96]  Dirk Grunwald,et al.  A system level perspective on branch architecture performance , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[97]  Bernhard Steffen,et al.  Lazy code motion , 1992, PLDI '92.

[98]  J. Cocke Global common subexpression elimination , 1970, Symposium on Compiler Optimization.

[99]  Roy Dz-Ching Ju,et al.  A new algorithm for scalar register promotion based on SSA form , 1998, PLDI '98.

[100]  Rajiv Gupta,et al.  Path profile guided partial redundancy elimination using speculation , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[101]  John Cocke,et al.  Programming languages and their compilers: Preliminary notes , 1969 .

[102]  Rajiv Gupta,et al.  Complete removal of redundant expressions , 1998, PLDI 1998.

[103]  James R. Larus,et al.  Exploiting hardware performance counters with flow and context sensitive profiling , 1997, PLDI '97.

[104]  Dhananjay M. Dhamdhere,et al.  How to analyze large programs efficiently and informatively , 1992, PLDI '92.

[105]  G.S. Sohi,et al.  Dynamic instruction reuse , 1997, ISCA '97.

[106]  Richard Johnson,et al.  Analysis techniques for predicated code , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[107]  Charles Consel,et al.  A general approach for run-time specialization and its application to C , 1996, POPL '96.

[108]  Alexandre E. Eichenberger,et al.  Register allocation for predicated code , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[109]  Markus Mock,et al.  Annotation-directed run-time specialization in C , 1997 .