Compiler construction bibliography


Code generation
Code size improvements
Compiler architecture
Inlining
Instruction scheduling
Intermediate representation
Interprocedural optimization
Just-In-Time compilers
Register allocation
Stack-based languages
Static Single Assignment (SSA) form
Virtual machines

Code generation

The lcc 4.x Code-Generation Interface
Christopher W. Fraser, David R. Hanson (2001)

Optimal Code Selection in DAGs
M. Anton Ertl (1999)

Finite-State Code Generation
Christopher W. Fraser, Todd A. Proebsting (1999)

Fast, Effective Code Generation in a Just-In-Time Java Compiler
Ali-Reza Adl-Tabatabai, Michael Cierniak, Guei-Yuan Lueh, Vishesh M. Parikh, James M. Stichnoth (1998)

Optimal Code-Selection using MBURG
K John Gough, Jeff Ledermann (1997)

An Efficient Bottom-Up Tree Pattern Matching for Code Selection that Does Dynamic Programming at Compile-Time
Kyung-Woo Kang, Kwang-Moo Choe (1997)

Code Generation = A* + BURS
Albert Nymeyer, Joost-Pieter Katoen, Ymte Westra, Henk Alblas (1996)

One-Pass, Optimal Tree Parsing With Or Without Trees
Todd A. Proebsting, Benjamin R. Whaley (1996)

Bottom-up Tree Rewriting Tool MBURG
K John Gough (1996)

On the Automatic Generation of Instruction Selector Using Bottom-Up Tree Pattern Matching
Kyung-Woo Kang, Kwang-Moo Choe (1995)

Code generation based on formal BURS theory and heuristic search
A. Nymeyer, J.-P. Katoen (1995)

Tree Automata for Code Selection
Christian Ferdinand, Helmut Seidl, Reinhard Wilhelm (1994)

Engineering Efficient Code Generators using Tree Matching and Dynamic Programming
Christopher W. Fraser, David R. Hanson, Todd A. Proebsting (1992)

Engineering Simple, Efficient Code Generator Generator
Christopher W. Fraser, David R. Hanson, Todd A. Proebsting (1992)

Code Generation Techniques
Todd Alan Proebsting (1992)

Hard-coding Bottom-up Code Generation Tables to Save Time and Space
Christopher W. Fraser, Robert R. Henry (1991)

A Code Generation Interface for ANSI C
Christopher W. Fraser, David R. Hanson (1991)

Concise specifications of locally optimal code generators
Andrew W. Appel (1987)

Code Selection through Object Code Optimization
Jack W. Davidson, Christopher W. Fraser (1984)


Code size improvements

Code Compaction of Matching Single-Entry Multiple-Exit Regions
Wen-Ke Chen, Bengu Li, Rajiv Gupta (2003)

Combining Global Code and Data Compaction
Bjorn De Sutter, Bruno De Bus, Koen De Bosschere, Saumya Debray (2001)

Compiler Techniques for Code Compaction
Saumya K. Debray, William Evans, Robert Muth, Bjorn De Sutter (2000)

Code Compression Techniques for Embedded Systems
Sven-Olof Nyström, Johan Runeson, Jan Sjödin (2000)

Optimizing for Reduced Code Space using Genetic Algorithms
Keith D. Cooper, Philip J. Schielke, and Devika Subramanian (1999)

Evaluation of a High Performance Code Compression Method
Charles Lefurgy, Eva Piccininni, Trevor Mudge (1999)

Enhanced Code Compression for Embedded RISC Processors
Keith D. Cooper, Nathaniel McIntosh (1999)

Space-efficient Executable Program Representations for Embedded Microprocessors
Charles Robert Lefurgy (1998)

Code Compression
Jens Ernst, William Evans, Christopher W. Fraser, Steven Lucco, Todd A. Proebsting (1997)

Storage Assignment to Decrease Code Size
Stan Liao, Srinivas Devadas, Kurt Keutzer, Steve Tjiang, Albert Wang (1995)


Compiler architecture

Compiler Construction using Flex and Bison
Anthony A. Aaby (2004)

Architecture for a Next-Generation GCC
Chris Lattner, Vikram Adve (2003)

Genetic Programming Applied to Compiler Heuristic Optimization
Mark Stephenson, Una-May O'Reilly, Martin C. Martin, Saman Amarasinghe (2003)

Compiler Construction: A Practical Aproach
F.J.F. Benders, J.W. Haaring, T.H. Janssen, D. Meffert, A.C. van Oostenrijk (2003)

Adaptive Optimizing Compilers for the 21st Century
Keith D. Cooper, Devika Subramanian, Linda Torczon (2002)

Meta Optimization: Improving Compiler Heuristics with Machine Learning
Mark Stephenson, Saman Amarasinghe, Martin Martin, Una-May O'Reilly (2002)

An Overview of the Intel IA-64 Compiler
Carole Dulong, Rakesh Krishnaiyer, Dattatraya Kulkarni, et al. (1999)

Optimal And Near-Optimal Solutions For Hard Compilation Problems
Ulrich Kremer (1998)

Let's Build a Compiler
Jack Crenshaw (1995)

The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages
Craig Chambers (1992)


Inlining

Evaluating Inlining Techniques
Owen Kaser, C. R. Ramakrishnan (1998)

Profile-Guided Automatic Inline Expansion for C Programs
Pohua Chang, Scott A. Mahlke, William Y. Chen, Wen-mei W. Hwu (1992)

Unexpected Side Effects of Inline Substitution: A Case Study
Keith D. Cooper, Mary W. Hall, and Linda Torczon (1992)

An Experiment with Inline Substitution
Keith D. Cooper, Mary W. Hall, Linda Torczon (1991)


Instruction scheduling

General-Purpose Architecture Instruction Scheduling Techniques
Bjorn De Sutter (1998)

Non-Local Instruction Scheduling with Limited Code Growth
Keith D. Cooper Philip J. Schielke Department of Computer Science (1998)

Issues in Instruction Scheduling
Philip Schielke (1998)

Retargetable Instruction Scheduling for Pipelined Processors
David Gordon Bradlee (1991)


Intermediate representation

Designing Intermediate Representations for Optimization
Markus U. Mock (1997)

The RTL System
Carl Mcconnell, J. David Roberts, Charles B. Schoening (1990)


Interprocedural optimization

A Practical System for Intermodule Code Optimization at Link-Time
Amitabh Srivastava, David W. Wall (1992)

Procedure Cloning
Keith D. Cooper Mary W. Hall Ken Kennedy Department of Computer Science (1992)

Managing Interprocedural Optimization
Mary Wolcott Hall (1990)


Just-In-Time compilers

Design, Implementation, and Evaluation of Optimizations in a Just-In-Time Compiler
Kazuaki Ishizaki, Motohiro Kawahito, Toshiaki Yasue, Mikio Takeuchi, Takeshi Ogasawara, Toshio Suganuma, Tamiya Onodera, Hideaki Komatsu, Toshio NakataniJava Grande (1999)


Register allocation

Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures
R. Govindarajan, Hongbo Yang, José Nelson Amaral, Chihong Zhang, Guang R. Gao (2003)

Graph-Coloring Register Allocation for Irregular Architectures
Michael D. Smith, Glenn Holloway (2001)

Optimal Spilling for CISC Machines with Few Registers
Andrew W. Appel, Lal George (2000)

Linear Scan Register Allocation
Massimiliano Poletto, Vivek Sarkar (1999)

Precise Register Allocation for Irregular Architectures
Timothy Kong, Kent D. Wilken (1998)

Approaches to Enhance Graph Coloring Register Allocation
Hongbo Yang, Weiping Hu, Ruliang Qiao, Zhaoqing Zhang (1998)

Live Range Splitting in a Graph Coloring Register Allocator
Keith D. Cooper, L. Taylor Simpson (1998)

Reducing the Impact of Spill Code
Timothy Harvey (1998)

Optimistic Register Coalescing
Jinpyo Park, Soo-Mook Moon (1998)

Hardness and Algorithms for Local Register Allocation
Vincenzo Liberatore, Martin Farach, Ulrich Kremer (1997)

Call-Cost Directed Register Allocation
Guei-Yuan Lueh, Thomas Gross (1997)

Fusion-Based Register Allocation
Guei-Yuan Lueh, Thomas Gross, Ali-Reza Adl-Tabatabai (1997)

On Local Register Allocation
Martin Farach, Vincenzo Liberatore (1997)

Spill Code Minimization via Interference Region Spilling
Peter Bergner, Peter Dahl, David Engebretsen, Matthew O'Keefe (1997)

Spill Code Minimization Techniques for Graph Coloring Register Allocators
Peter E. Bergner (1997)

Global Register Allocation Based on Graph Fusion
Guei-Yuan Lueh, Thomas Gross, Ali-Reza Adl-Tabatabai (1996)

Minimum Cost Interprocedural Register Allocation
Steven M. Kurlander, Charles N. Fischer (1996)

Issues in Register Allocation by Graph Coloring
Guei-Yuan Lueh (1996)

Iterated Register Coalescing
Lal George, Andrew W. Appel (1996)

Demand-Driven Register Allocation
Todd A. Proebsting, Charles N. Fischer (1996)

HARE: A Hierarchical Allocator for Registers in Multiple Issue Architectures
David A. Berson, Rajiv Gupta, Mary Lou Soffa (1995)

Simple Register Spilling in a Retargetable Compiler
Christopher W. Fraser, David R. Hanson (1995)

Machine Independent Register Allocation For The Impact-I C Compiler
Richard Eugene Hank (1995)

Improvements to Graph Coloring Register Allocation
Preston Briggs, Keith D. Cooper, Linda Torczon (1994)

Load/Store Range Analysis for Global Register Allocation
Priyadarshan Kolte, Mary Jean Harrold (1994)

Register Allocation sans Coloring
Ksheerabdhi Krishna, Sanjay M. Krishnamurthy (1994)

Register Allocation and Phase Interactions in Retargetable Optimizing Compilers
Manuel Enrique Benitez (1994)

Dependence-Conscious Global Register Allocation
Wolfgang Ambrosch, M. Anton Ertl, Felix Beer, Andreas Krall (1994)

Register Allocation with Instruction Scheduling: a New Approach
Shlomit Pinter (1993)

Coloring Register Pairs
Preston Briggs, Keith D. Cooper, Linda Torczon (1992)

Register Allocation via Graph Coloring
Preston Briggs (1992)

Rematerialization
Preston Briggs, Keith D. Cooper, Linda Torczon (1992)

Improving Register Allocation for Subscripted Variables
David Callahan, Steve Carr, Ken Kennedy (1990)

Global Register Allocation at Link Time
David W. Wall n Digital Equipment Corporatio Western Research Lab (1986)


Stack-based languages

Implementing Languages Other than Java on the Java Virtual Machine
K. John Gough, Diane Corney (2000)

Compilation of Stack-Based Languages
M. Anton Ertl, Christian Pirker (1998)

Implementation of Stack-Based Languages on Register Machines
Martin Anton Ertl (1996)

A New Approach to Forth Native Code Generation
M. Anton Ertl (1992)


Static Single Assignment (SSA) form

A Functional Perspective on SSA Optimisation Algorithms
Manuel M. T. Chakravarty, Gabriele Keller, Patryk Zadarnowski (2003)

Simple Generation of Static Single-Assignment Form
John Aycock, Nigel Horspool (2000)

A Global Code Optimizer Utilizing Static Single Assignment Form
Jan Sjodin (1997)

A New Algorithm for Partial Redundancy Elimination based on SSA Form
Fred Chow, Sun Chan, Robert Kennedy, Shin-Ming Liu, Raymond Lo, Peng Tu (1997)

Characterizing the Optimility of Minimal SSA Using the Value Flow Graph
Hideki Saito Constantine D. Polychronopoulos Center for Supercomputing (1996)

sigma-SSA and its Construction through Symbolic Interpretation
Hideki Saito, Constantine D. Polychronopoulos (1996)

Practical Improvements to the Construction and Destruction of Static Single Assignment Form
Preston Briggs, Keith D. Cooper, Timothy J. Harvey, L. Taylor Simpson (1996)

Extended SSA Numbering: Introducing SSA Properties to Languages with Multi-level Pointers
Christopher Lapkowski and Laurie Hendren (1996)

Static Single Assignment Construction
Preston Briggs, Tim Harvey, Taylor Simpson (1995)

Extended SSA with Factored Use-Def Chains to Support Optimization and Parallelism
Eric Stoltz, Michael P. Gerlek, Michael Wolfe (1994)

Single-Pass Generation of Static Single Assignment Form for Structured Languages
Marc M. Brandis, Hanspeter Mossenbock (1994)

Efficient Accommodation of May-Alias Information in SSA Form
Ron Cytron, Reid Gershbein (1993)

Using SSA Form in a Code Optimizer
Carl McConnell, Ralph E. Johnson (1992)

Efficiently Computing Static Single Assignment Form and the Control Dependence Graph
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck (1991)


Virtual machines

Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreters
M. Anton Ertl, David Gregg (2003)

A Fast Java Interpreter
David Gregg, M. Anton Ertl, Andreas Krall (2001)

The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures
M. Anton Ertl, David Gregg (2001)

vmgen A Generator of Efficient Virtual Machine Interpreters
M. Anton Ertl, David Gregg, Andreas Krall, Bernd Paysan (2001)


Generated by mk_biblio.pl - Sat Nov 13 17:00:01 2004