Building an Optimizing Compiler

Compiler structure graphs flow graph local optimization alias analysis static single assignment dominator-based optimization advanced techniques global optimization limiting resources scheduling and rescheduling register allocation object module.

[1]  Keith D. Cooper,et al.  Coloring register pairs , 1992, LOPL.

[2]  Keith D. Cooper,et al.  Value-driven redundancy elimination , 1996 .

[3]  Charles N. Fischer,et al.  Crafting a Compiler with C , 1991 .

[4]  Dennis J. Frailey Expression optimization using unary complement operators , 1970 .

[5]  S. Beaty Instruction scheduling using genetic algorithms , 1992 .

[6]  William A. Wulf,et al.  The Design of an Optimizing Compiler , 1975 .

[7]  William M. Waite,et al.  Compiler Construction: An Advanced Course , 1974 .

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

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

[10]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[11]  Linda Torczon,et al.  An efficient representation for sparse sets , 1993, LOPL.

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

[13]  Susan J. Eggers,et al.  Balanced scheduling: instruction scheduling when memory latency is uncertain , 1993, PLDI '93.

[14]  Bernard Lorho Methods and tools for compiler construction : an advanced course , 1984 .

[15]  Thomas Karl Richard Gross,et al.  Code optimization of pipeline constraints , 1983 .

[16]  Ken Kennedy,et al.  Fast interprocedual alias analysis , 1989, POPL '89.

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

[18]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

[19]  Dhananjay M. Dhamdhere,et al.  A composite hoisting-strength reduction transformation for global program optimization part ii , 1982 .

[20]  Philip H. Sweany,et al.  Trace scheduling optimization in a retargetable microcode compiler , 1987, MICRO 20.

[21]  Paul Walton Purdom,et al.  Immediate Predominators in a Directed Graph [H] (Algorithm 430) , 1972, Commun. ACM.

[22]  Guang R. Gao,et al.  A Register Allocation Framework Based on Hierarchical Cyclic Interval Graphs , 1992, CC.

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

[24]  Barbara G. Ryder,et al.  Constructing the Call Graph of a Program , 1979, IEEE Transactions on Software Engineering.

[25]  Henry S. Warren,et al.  Instruction Scheduling for the IBM RISC System/6000 Processor , 1990, IBM J. Res. Dev..

[26]  Fred C. Chow,et al.  A portable machine-independent global optimizer--design and measurements , 1984 .

[27]  Vivek Sarkar,et al.  Compact representations for control dependence , 1990, PLDI '90.

[28]  Ken Kennedy,et al.  Interprocedural transformations for parallel code generation , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[29]  Guang R. Gao,et al.  Register allocation using cyclic interval graphs: a new approach to an old problem , 1992 .

[30]  Bruce R. Schatz,et al.  An Overview of the Production-Quality Compiler-Compiler Project , 1980, Computer.

[31]  Mary Hall Managing interprocedural optimization , 1992 .

[32]  Alfred V. Aho,et al.  Principles of Compiler Design , 1977 .

[33]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[34]  Martin Charles Golumbic,et al.  Instruction Scheduling Beyond Basic Blocks , 1990, IBM J. Res. Dev..

[35]  Ken Kennedy,et al.  Interprocedural side-effect analysis in linear time , 1988, PLDI '88.

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

[37]  Monica S. Lam,et al.  Instruction Scheduling for Superscalar Architectures , 1990 .

[38]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[39]  Philip H. Sweany,et al.  Dominator-path scheduling: a global scheduling method , 1992, MICRO 1992.

[40]  Bjarne Steensgaard Points-to Analysis by Type Inference of Programs with Structures and Unions , 1996, CC.

[41]  Thomas R. Gross,et al.  Avoidance and suppression of compensation code in a trace scheduling compiler , 1994, TOPL.

[42]  Deborah S. Coutant Retargetable high-level alias analysis , 1986, POPL '86.

[43]  Charles N. Fischer,et al.  Crafting a Compiler , 1988 .

[44]  Robert E. Tarjan,et al.  Symbolic Program Analysis in Almost-Linear Time , 1982, SIAM J. Comput..

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

[46]  John Cocke,et al.  A methodology for the real world , 1981 .

[47]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

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

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

[50]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[51]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

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

[53]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[54]  Vasanth Bala,et al.  Efficient instruction scheduling using finite state automata , 1995, MICRO 1995.

[55]  Martin Hopkins,et al.  An overview of the PL.8 compiler , 1982, SIGPLAN '82.

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

[57]  Keith D. Cooper,et al.  Unexpected side effects of inline substitution: a case study , 1992, LOPL.

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

[59]  William M. McKeeman Symbol Table Access , 1976, Compiler Construction.

[60]  Ken Kennedy,et al.  Efficient call graph analysis , 1992, LOPL.

[61]  Daniel J. Rosenkrantz,et al.  Compiler design theory , 1976 .

[62]  Ken Kennedy,et al.  Interprocedural constant propagation , 1986, SIGP.

[63]  James R. Larus,et al.  Branch prediction for free , 1993, PLDI '93.

[64]  Gregory J. Chaitin,et al.  Register allocation & spilling via graph coloring , 1982, SIGPLAN '82.

[65]  Keith D. Cooper,et al.  Improvements to graph coloring register allocation , 1994, TOPL.

[66]  J. W. Backus,et al.  The FORTRAN automatic coding system , 1899, IRE-AIEE-ACM '57 (Western).

[67]  William A. Barrett,et al.  Compiler Construction: Theory and Practice , 1979 .

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