Electrical Fire

Bibliography

  

Below are some interesting papers relevant to the work we're doing on Electrical Fire. Some key papers are in red (primary) or brown (secondary).

Compiler Books
[ACHM82] Engineering a Compiler: VAX-11 Code Generation and Optimization Anklam, Cutler, Heinen, MacLaren 82
[ASU86] Compilers: Principles, Techniques, and Tools Aho, Sethi, Ullman 86
[Ellis86] Bulldog: A Compiler for VLIW Architectures Ellis 86
[Lee89] Realistic Compiler Generation Lee 89
[Holub90] Compiler Design in C Holub 90
[FraHa95] A Retargetable C Compiler: Design and Implementation Fraser, Hanson 95
Integrated Systems
[EAH96] A Java ILP Machine Based on Fast Dynamic Compilation Ebcioglu, Altman, Hokenek (IBM) IBM Cyberjournal 8310
[EbAlt96] DAISY: Dynamic Compilation for 100% Architectural Compatibility Ebcioglu, Altman (IBM) IBM Cyberjournal 8502
[HooZa96] Generating Machine Specific Optimizing Compilers Hoover, Zadeck (IBM) POPL 96, p. 219
[AGL96] cmcc: Competitive modular compiler in C++ Adl-Tabatabai, Gross, Lueh (CMU) OOPSLA 96, p. 51
[DDGLC96] Vortex: An Optimizing Compiler for Object-Oriented Languages Dean, DeFouw, Grove, Litvinov, Chambers (U Washington) OOPSLA 96, p. 83
[Brandis95] Optimizing Compilers for Structured Programming Languages Brandis (Zürich) PhD thesis 95
[JoMcC] The RTL System: A Framework for Code Optimization Johnson, McConnell (U Illinois)
[McCRoSch] The RTL System McConnell, Roberts, Schoening (U Illinois)
[FraHa91a] A Retargetable Compiler for ANSI C Fraser, Hanson SIGPLAN Notices 26:10, Oct 91, p. 29
[Horwat88] A Concurrent Smalltalk Compiler for the Message-Driven Processor Horwat (MIT) TR 88 - 1080
[Horwat89] Concurrent Smalltalk on the Message-Driven Processor Horwat (MIT) TR 89 - 1321
Data Structures
[BriTo93] An Efficient Representation for Sparse Sets Briggs, Torczon (Rice) LOPLAS 2:1, Mar 1993, p. 59
Dataflow Analysis and Intermediate Representations
Traditional
[TjiaHe92] Sharlit -- A tool for building optimizers Tjiang, Hennessy (Stanford) PLDI 92, p. 82
[BGS95a] GURRR: A Global Unified Resource Requirements Representation Berson, Gupta, Soffa IR 95, p. 23
[Tjiang93] Automatic Generation of Data-Flow Analyzers: A Tool for Building Optimizers Tjiang PhD thesis 93
[DRZ92] How to Analyze Large Programs Efficiently and Informatively Dhamdhere, Rosen, Zadeck PLDI 92, p. 212
[MaRy90] An Efficient Hybrid Algorithm for Incremental Data Flow Analysis Marlowe, Ryder (Rutgers) POPL 90, p. 184
[JaiTho88] An Efficient Approach to Data Flow Analysis in a Multiple Pass Global Optimizer Jain, Thompson (HP) PLDI 88, p. 154
Program Dependence Graphs
[BaMa92] Program Dependence Graphs for the Rest of Us Ballance, Maccabe (U New Mexico) TR 92-10
[WCES94] Value Dependence Graphs: Representation Without Taxation Weise, Crew, Ernst, Steensgaard (Microsoft) POPL 94, p. 297
[Ruf95] Optimizing Sparse Representations for Dataflow Analysis Ruf (Microsoft) IR 95, p. 50
Static Single Assignment: Basics
[LeTa79] A Fast Algorithm for Finding Dominators in a Flowgraph Lengauer, Tarjan (Stanford) TOPLAS 1:1, Jul 79, p. 121
[CFRWZ89] An Efficient Method of Computing Static Single Assignment Form Cytron, Ferrante, Rosen, Wegman, Zadeck (IBM) POPL 89, p. 25
[CFRWZ91] Efficiently Computing Static Single Assignment Form and the Control Dependence Graph Cytron, Ferrante, Rosen, Wegman, Zadeck (IBM) TOPLAS 13:4, Oct 91, p. 451
[CyFe93] Efficiently Computing phi-Nodes On-The-Fly Cytron, Ferrante Langs and Compilers for Parallel Computing 93, p. 461
Static Single Assignment: DJ Graphs
[SGL95a] Incremental Computation of Dominator Trees Sreedhar, Gao, Lee (McGill) IR 95, p. 1
[SGL96] A New Framework for Exhaustive and Incremental Data Flow Analysis Using DJ Graphs Sreedhar, Gao, Lee (McGill) PLDI 96, p. 278
[SGL95b] Efficient Data Flow Analysis Using DJ Graphs: Elimination Methods Revisited Sreedhar, Gao, Lee (McGill) TR 95-93
[SreeGao95] A Linear Time Algorithm for Placing phi-Nodes Sreedhar, Gao (McGill) POPL 95, p. 62
[Sreedhar95] Efficient Program Analysis Using DJ Graphs Sreedhar (McGill) PhD thesis 95
Static Single Assignment: Other Variants
[Ramalingam97] On Sparse Evaluation Representations Ramalingam (IBM) Fourth International Static Analysis Symposium 97
[PBJMS91] Dependence Flow Graphs: An Algebraic Approach to Program Dependencies Pingali, Beck, Johnson, Moudgill, Stodghill (Cornell) POPL 91, p. 67
[JPP94] The Program Structure Tree: Computing Control Regions in Linear Time Johnson, Pearson, Pingali (Cornell) PLDI 94, p. 171
[JoPi93] Dependence-Based Program Analysis Johnson, Pingali (Cornell) PLDI 93, p. 78
[CCF91] Automatic Construction of Sparse Data Flow Evaluation Graphs Choi, Cytron, Ferrante (IBM) POPL 91, p. 55
[CliPa95] A Simple Graph-Based Intermediate Representation Click, Paleczny IR 95, p. 35
[TuPa95] Efficient Building and Placing of Gating Functions Tu, Padua (U Illinois) PLDI 95, p. 47
[Havlak93] Construction of Thinned Gated Single-Assignment Form Havlak Langs and Compilers for Parallel Computing 93, p. 477
[GeWoSto] A Reference Chain Approach for Live Variables Gerlek, Wolfe, Stoltz (OGI)
[SGW94] Extended SSA with Factored Use-Def Chains to Support Optimization and Parallelism Stoltz, Gerlek, Wolfe (OGI) HICSS 94, p. 43
[BraMö94] Single-Pass Generation of Static Single-Assignment Form for Structured Languages Brandis, Mössenböck (Zürich) TOPLAS 16:6, Nov 94, p. 1684
Optimization
Constant Propagation
[WeZa91] Constant Propagation with Conditional Branches Wegman, Zadeck (IBM) TOPLAS 13:2, Apr 91, p. 181
[SWG94] Constant Propagation: A Fresh Demand-Driven Look Stoltz, Wolfe, Gerlek (OGI) SIGAPP 94
Partial Redundancy Elimination
[AWZ88] Detecting Equality of Variables in Programs Alpern, Wegman, Zadeck POPL 88, p. 1
[RWZ88] Global Value Numbers and Redundant Computation Rosen, Wegman, Zadeck POPL 88, p. 12
[KRS92] Lazy Code Motion Knoop, Rüthing, Steffen PLDI 92, p. 224
[KRS95] The Power of Assignment Motion Knoop, Rüthing, Steffen PLDI 95, p. 233
[Click95a] Global Code Motion; Global Value Numbering Click PLDI 95, p. 246
[CliCoo95] Combining Analyses, Combining Optimizations Click, Cooper (Rice) TOPLAS 17:2, Mar 95, p. 181
[Click95b] Combining Analyses, Combining Optimizations Click (Rice) PhD thesis 95
[Simpson96] Value-Driven Redundancy Elimination Simpson (Rice) PhD Thesis 96
[CCKLLT97] A New Algorithm for Partial Redundancy Elimination Based on SSA Form Chow, Chan, Kennedy, Liu, Lo, Tu (SGI) PLDI 97, p. 273
Range Checking
[GouKlae96] Eliminating Range Checks using Static Single Assignment Form Gough, Klaeren ACSC 96
[GouKlae94] Eliminating Range Checks using Static Single Assignment Form Gough, Klaeren Tübingen TR 94
[KoWo95] Elimination of Redundant Array Subscript Range Checks Kolte, Wolfe PLDI 95, p. 270
[Gupta90] A Fresh Look at Optimizing Array Bound Checking Gupta PLDI 90, p. 272
General
[McCJo92] Using Static Single Assignment Form in a Code Optimizer McConnell, Johnson (U Illinois) LOPLAS 1:2, Jun 92, p. 152
[CSV95] Operator Strength Reduction Cooper, Simpson, Vick (Rice) TR95635-S 95
[McConnell93] Tree-Based Code Optimization McConnell (U Illinois) PhD thesis 93
[HHGMLH95] Compiler Technology for Future Microprocessors Hwu, Hank, Gallagher, Mahlke, Lavery, Haab, Gyllenhaal, August Proc. IEEE 83:12, Dec. 95, p. 1625
Synchronization
[Bacon97] Featherweight Monitors with Bacon Bits Bacon (IBM)
Dynamic Dispatching
[DrieHö95] Minimizing Row Displacement Dispatch Tables Driesen, Hölzle (UCSB) OOPSLA 95, p. 141
[DMSV89] A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance Dixon, McKee, Schweizer, Vaughan OOPSLA 89, p. 211
[ViHo96] Compact Dispatch Tables for Dynamically Typed Object Oriented Languages Vitek, Horspool CC 96, p. 309
[DMM96] Simple and Effective Analysis of Statically-Typed Object-Oriented Programs Diwan, Moss, McKinley (UMass) OOPSLA 96, p. 292
[HöUn95] Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback Hölzle, Ungar PLDI 94, p. 326
Interprocedural
[Hölzle94] Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming Hölzle PhD thesis 94
[Dolby97] Automatic Inline Allocation of Objects Dolby (U Illinois) PLDI 97, p. 7
[Goodwin97] Interprocedural Dataflow Analysis in an Executable Optimizer Goodwin (DEC) PLDI 97, p. 122
[AGS97] Aggressive Inlining Ayers, Gottlieb, Schooler PLDI 97, p. 134
Code Generation
[HaChri86] High-Quality Code Generation Via Bottom-Up Tree Pattern Matching Hatcher, Christopher (IIT) POPL 86, p. 119
[Chase87] An Improvement to Bottom-Up Tree Pattern Matching Chase (Rice) POPL 87, p. 168
[PeGra88] Optimal Code Generation for Expression Trees: An Application of BURS Theory Pelegri-Llopart, Graham (Berkeley) POPL 88, p. 294
[BDB90] Efficient Retargetable Code Generation using Bottom-Up Tree Pattern Matching Balachandran, Dhamdhere, Biswas Computer Language 15:3, 1990, p. 127
[FraHa91b] A Code Generation Interface for ANSI C Fraser, Hanson Sw Practice and Exp 21:9, Sep 91, p. 963
[FraHe91] Hard-coding Bottom-up Code Generation Tables to Save Time and Space Fraser and Henry Sw Practice and Exp 21:1, Jan 91, p. 1
[Proebsting92a] Code Generation Techniques Proebsting (U Wisconsin - Madison) PhD thesis 92
[Proebsting92b] Simple and Efficient BURS Table Generation Proebsting (U Wisconsin - Madison) PLDI 92, p. 331
[FraHeProe] BURG -- Fast Optimal Instruction Selection and Tree Parsing Fraser, Henry, Proebsting manual
[FHP92] Engineering a Simple, Efficient Code Generator Generator Fraser, Hanson, Proebsting LOPLAS 1:3, Sep. 92, p. 213
[ProeWha96] One-Pass, Optimal Tree Parsing -- With or Without Trees Proebsting, Whaley (U Arizona) CC 96, p. 294
[Gough] Bottom up Tree Rewriting with MBURG: The MBURG Reference Manual Gough manual
[NKWA96] Code Generation = A* + BURS Nymeyer, Katoen, Westra, Alblas CC 96, p. 160
Register Allocation
Local
[HFG89] On the Minimization of Loads/Stores in Local Register Allocation Hsu, Fischer, Goodman IEEE Trans Sw Eng 15:10, Oct 89, p. 1252
[BGA98]

Linear-Time Register Allocation for a Fixed Number of Registers

 

 

Bodlaender, Gustedt, Arne Telle

9th ACM/SIAM Symposium on Discrete Algorithms
Jan, 1998
pp.574-583
Download

See also instruction scheduling
Intraprocedural
[Lueh96] Issues in Register Allocation by Graph Coloring Lueh (CMU) TR 96-171
[LGA96] Global Register Allocation Based on Graph Fusion Lueh, Gross, Adl-Tabatabai (CMU) TR 96-106
[BWD95] Register Allocation Using Lazy Saves, Eager Restores, and Greedy Shuffling Burger, Waddell, Dybvig (Indiana) PLDI 95, p. 130
[Pinter93] Register Allocation with Instruction Scheduling: a New Approach Pinter (Technion) PLDI 93, p. 248
[HGAM92] A Register Allocation Framework Based on Hierarchical Cyclic Interval Graphs Hendren, Gao, Altman, Mukerji (McGill) CC 92, p. 176
[BGS95b] HARE: A Hierarchical Allocator for Registers in Multiple Issue Architectures Berson, Gupta, Soffa (U Pittsburgh) TR 95-06
[CaKo91] Register Allocation via Hierarchical Graph Coloring Callahan, Koblenz (Tera) PLDI 91, p. 192
[GeoApp96] Iterated Register Coalescing George, Appel POPL 96, p. 208
[BCT94] Improvements to Graph Coloring Register Allocation Briggs, Cooper, Torczon (Rice) TOPLAS 16:3, May 94, p. 428
[Briggs92] Register Allocation via Graph Coloring Briggs (Rice) PhD thesis 92
[ChoHe90] The Priority-Based Coloring Approach to Register Allocation Chow, Hennessy TOPLAS 12, Oct 90, p. 501
[ProeFi96] Demand-Driven Register Allocation Proebsting, Fischer TOPLAS 18:6, Nov 96, p. 683
[NoPo94] Register Allocation Over the Program Dependence Graph Norris, Pollock (U Delaware) PLDI 94, p. 266
[Nickerson90] Graph Coloring Register Allocation for Processors with Multi-Register Operands Nickerson (Intel) PLDI 90, p. 40
[FraHa92] Simple Register Spilling in a Retargetable Compiler Fraser, Hanson Sw Practice and Exp 22:1, Jan 92, p. 85
[GouLe95] Register Allocation in the Gardens Point Compilers Gough, Ledermann (Queensland) ACSC 95
[BDEO97] Spill Code Minimization via Interference Region Spilling Bergner, Dahl, Engebretsen, O'Keefe (U Minnesota) PLDI 97, p. 287
[LueGro97] Call-Cost Directed Register Allocation Lueh, Gross (CMU) PLDI 97, p. 296
Interprocedural
[Chow88] Minimizing Register Usage Penalty at Procedure Calls Chow PLDI 88, p. 85
[KuFi96] Minimum Cost Interprocedural Register Allocation Kurlander, Fischer (U Wisconsin - Madison) POPL 96, p. 230
[Wall88] Register Windows vs. Register Allocation Wall (Digital) PLDI 88, p. 67
Scheduling
Execution Unit Scheduling
[RauFi93] Instruction-Level Parallel Processing: History, Overview, and Perspective Rau, Fisher (HP) J. Supercomputing 7, May 93, p. 9
[CLMCH95] The Importance of Prepass Code Scheduling for Superscalar and Superpipelined Processors Chang, Lavery, Mahlke, Chen, Hwu (U Illinois) IEEE Trans on Computers 44:3, Mar 95
[Griesemer92] Scheduling Instructions by Direct Placement Griesemer (Zürich) CC 92, p. 229
[Lam88] Software Pipelining: An Effective Scheduling Technique for VLIW Machines Lam (CMU) PLDI 88, p. 318
[KPF95] Efficient Instruction Scheduling for Delayed-Load Architectures Kurlander, Proebsting, Fischer (UWisconsin - Madison) TOPLAS 17:5, 95, p. 740
[ProeFi91] Linear-time, Optimal Code Scheduling for Delayed-Load Architectures Proebsting, Fischer (UWisconsin - Madison) PLDI 91, p. 256
[GooHsu88] Code Scheduling and Register Allocation in Large Basic Blocks Goodman, Hsu Supercomputing 88, p. 442
[BEH91] Integrating Register Allocation and Instruction Scheduling for RISCs Bradlee, Eggers, Henry (UWashington) ASPLOS 91, p. 122
[BHE91] The Marion System for Retargetable Instruction Scheduling Bradlee, Henry, Eggers (UWashington) PLDI 91, p. 229
[BeRo91] Global Instruction Scheduling for Superscalar Machines Bernstein, Rodeh PLDI 91, p. 241
[RGSL96] Software Pipelining Showdown: Optimal vs. Heuristic Methods in a Production Compiler Ruttenberg, Gao, Stoutchinin, Lichtenstein (McGill) PLDI 96, p. 1
Cache Scheduling
[HKC97] Efficient Procedure Mapping Using Cache Line Coloring Hashemi, Kaeli, Calder PLDI 97, p. 171
[YJKS97] Near-Optimal Intraprocedural Branch Alignment Young, Johnson, Karger, Smith PLDI 97, p. 183
Cross-Platform Assembly
[RaFe95] The New Jersey Machine-Code Toolkit Ramsey, Fernandez Usenix 95, p. 289
Dynamic Code Generation
[Engler96] VCODE: A Retargetable, Extensible, Very Fast Dynamic Code Generation System Engler (MIT) PLDI 96, p. 160
[LDG95] Clarity MCode: A Retargetable Intermediate Representation for Compilation Lewis, Deutsch, Goldstein IR 95, p. 119
[EHK96] 'C: A Language for High-Level, Efficient, and Machine-Independent Dynamic Code Generation Engler, Hsieh, Kaashoek (MIT) POPL 96, p. 131
[PoEngKaa] tcc: A Template-Based Compiler for 'C Poletto, Engler, Kaashoek (MIT)
[PEK97] tcc: A System for Fast, Flexible, and High-Level Dynamic Code Generation Poletto, Engler, Kaashoek (MIT) PLDI 97, p. 109
[EngProe94] DCG: An Efficient, Retargetable Dynamic Code Generation System Engler, Proebsting ASPLOS 94, p. 263
[Morris91] CCG: A Prototype Coagulating Code Generator Morris PLDI 91, p. 45
[CoNoë96] A General Approach for Run-Time Specialization and its Application to C Consel, Noël POPL 96, p. 145
[Wall92] Systems for Late Code Modification Wall (Digital) WRL report 92-3
[Franz94] Code-Generation On-the-Fly: A Key to Portable Software Franz (Zürich) PhD thesis 94
[KEH91] A Case for Runtime Code Generation Keppel, Eggers, Henry (U Washington) TR 91-11-04
[Keppel91] A Portable Interface for On-The-Fly Instruction Space Modification Keppel (U Washington) ASPLOS 91, p. 86
[KEH93] Evaluating Runtime-Compiled Value-Specific Optimizations Keppel, Eggers, Henry (U Washington) TR 93-11-02
[KeRu93] Faster Dynamic Linking for SPARC V8 and System V.4 Keppel, Russell (U Washington) TR 93-12-08
Debugging
[Wismüller94] Debugging of Globally Optimized Programs Using Data Flow Analysis Wismüller PLDI 94, p. 278
[BHS92] A New Approach to Debugging Optimized Code Brooks, Hansen, Simmons PLDI 92, p. 1
[HCU92] Debugging Optimized Code with Dynamic Deoptimization Hölzle, Chambers, Ungar PLDI 92, p. 32
[RaHa92] A Retargetable Debugger Ramsey, Hanson PLDI 92, p. 22
Assembly Language Manuals
[Intel96a] Pentium Pro Family Developer's Manual, Vol 2: Programmer's Reference Manual Intel 96
[Intel96b] Pentium Pro Family Developer's Manual, Vol 3: Operating System Writer's Manual Intel 96
[Intel95] Optimizations for Intel's 32-Bit Processors Intel 95 AP-526
[Motorola87] MC68030 Enhanced 32-Bit Microprocessor User's Manual Motorola 87 MC68030UM/AD
[Motorola89] MC68040 32-Bit Microprocessor User's Manual Motorola 89 MC68040UM/AD
[IBMMot93] PowerPC 601 RISC Microprocessor User's Manual IBM, Motorola 93 MPC601UM/AD Rev. 1
[HKHW96] The PowerPC Compiler Writer's Guide Hoxey, Karim, Hay, Warren 96 MPRPPCOMP-01
[Heinrich93] MIPS R4000 User's Manual Heinrich 93
[SPARC92] The SPARC Architecture Manual, Version 8 SPARC International 92 SAV080SI9106
[Digital92] Alpha Architecture Handbook Digital 92
[Kane96] PA-RISC 2.0 Architecture Kane 96
Java Manuals
[ArGo96] The Java Programming Language Arnold, Gosling 96
[GJS96] The Java Language Specification Gosling, Joy, Steele 96
[LiYe97] The Java Virtual Machine Specification Lindholm, Yellin 97
[GoYe96a] The Java Application Programming Interface, Vol 1: Core Packages Gosling, Yellin 96
[GoYe96b] The Java Application Programming Interface, Vol 2: Window Toolkit and Applets Gosling, Yellin 96
Java Variants
[MBL97] Parametrized Types for Java Myers, Bank, Liskov (MIT) POPL 97, p. 132
[MBL97] Pizza into Java: Translating Theory into Practice Odersky, Wadler POPL 97, p. 146
[Golliver97a] First-Implementation Artifacts in Java Golliver Intel 97
[Golliver97b] The Ivory Brand of Java Golliver Intel 97