-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathpapers.tex
More file actions
457 lines (438 loc) · 84.8 KB
/
papers.tex
File metadata and controls
457 lines (438 loc) · 84.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
\documentclass[letterpaper]{scribe}
\usepackage{pdflscape} % For the landscape environment (better than lscape for PDFs)
\usepackage{longtable} % For the longtable environment
\usepackage[table]{xcolor} % For \rowcolors
\usepackage{array} % For custom column types like >{\centering\arraybackslash}
\usepackage{booktabs} % For professional table rules (\toprule, \midrule, etc.)
\title{\textbf{Papers on Compiler Optimizations: Analysis and Transformations (1952-1994)}}
\author{
Federico Bruzzone \orcidlink{0000-0002-8701-8853} \\
Computer Science Department \\
Università degli Studi di Milano \\
\href{mailto:federico.bruzzone@unimi.it}{\texttt{federico.bruzzone@unimi.it}} \\
\url{https://federicobruzzone.github.io/}
}
\date{30 September 2025}
\begin{document}
\maketitle
{
% \begin{landscape}
\rowcolors{2}{gray!10}{white}
\footnotesize % \tiny
% \begin{longtable}{p{8.7cm} c c c c c}
% \begin{longtable}{l c c c c c}
% \begin{longtable}{
% m{13cm} % title
% >{\centering\arraybackslash}m{1cm} % venue type
% >{\centering\arraybackslash}m{1.5cm} % venue name
% >{\centering\arraybackslash}m{0.5cm} % type
% >{\centering\arraybackslash}m{0.5cm} % year
% >{\centering\arraybackslash}m{1.5cm} % sources
% }
\begin{longtable}{
>{\raggedright\arraybackslash}m{9cm} % title
>{\centering\arraybackslash}m{1cm} % venue type
>{\centering\arraybackslash}m{1.5cm} % venue name
>{\centering\arraybackslash}m{0.5cm} % type
>{\centering\arraybackslash}m{0.5cm} % year
>{\centering\arraybackslash}m{1.5cm} % sources
}
\toprule
\rowcolor{white}
\textbf{Title} & \textbf{Venue Type} & \textbf{Venue Name} & \textbf{Type} & \textbf{Year} & \textbf{Sources} \\
\midrule
\endfirsthead
\toprule
\rowcolor{white}
\textbf{Title} & \textbf{Venue Type} & \textbf{Venue Name} & \textbf{Type} & \textbf{Year} & \textbf{Sources} \\
\midrule
\endhead
\midrule
\rowcolor{white}
\multicolumn{6}{r}{\textit{Continued on next page}} \\
\midrule
\endfoot
\bottomrule
\rowcolor{white} \\
\rowcolor{white} \\
\rowcolor{white}
\caption{The papers from \textit{Advanced Compiler Design and Implementation}~\cite{Muchnick97} (A),
\textit{Compilers: Principles, Techniques, and Tools}~\cite{Aho06} (D),
\textit{Engineering a Compiler}~\cite{Cooper22} (E),
\textit{Modern Compiler Implementation in C/Java/ML}~\cite{Appel98b, Appel02, Appel98} (M),
\textit{Optimizing Compilers for Modern Architectures: A Dependence-Based Approach}~\cite{Kennedy01b} (O), and
the Bacon's survey~\cite{Bacon94} (S). In the \textbf{Type} column, C stands for conference, J for journal, and W for workshop.} \\
\endlastfoot
% Sorted LaTeX table rows by year
The problem of simplifying truth functions~\cite{Quine52} & T\&F & AMM & J & 1952 & O \\
Minimization of Boolean functions~\cite{McCluskey56} & Bell Labs & Bell System Tech. J. & J & 1956 & O \\
An algorithm for translating Boolean expressions~\cite{Arden62} & ACM & JACM & J & 1962 & S \\
High speed compilation of efficient object code~\cite{Gear65} & ACM & CACM & J & 1965 & D \\
Peephole optimization~\cite{McKeeman65} & ACM & CACM & J & 1965 & E \\
Program optimization~\cite{Allen66} & - & PP & C & 1966 & A, D, E, M, O, S \\
Index Register Allocation~\cite{Horwitz66} & ACM & JACM & J & 1966 & E \\
Analysis of Programs for Parallel Processing~\cite{Bernstein66} & IEEE & TC (TEC) & J & 1966 & O \\
Object code optimization~\cite{Lowry69} & ACM & CACM & J & 1969 & A, D, E \\
Expression optimization using unary complement operators~\cite{Frailey70} & ACM & PLDI (SCO) & C & 1970 & E \\
Local optimizations~\cite{Bagwell70} & ACM & PLDI (SCO) & C & 1970 & E \\
Detection and parallel execution of independent instructions~\cite{Tjaden70} & IEEE & TCO & J & 1970 & S \\
Global common subexpression elimination~\cite{Cocke70} & ACM & PLDI (SCO) & C & 1970 & D, E, M \\
The Generation of Optimal Code for Arithmetic Expressions~\cite{Sethi70} & ACM & JACM & J & 1970 & D, E, M \\
Control flow analysis~\cite{Allen70} & ACM & PLDI (SCO) & C & 1970 & D, E \\
A Basis for Program Optimization~\cite{Allen71} & IFIP & NH & C & 1971 & A, D, E, M, O, S \\
A catalogue of optimizing transformations~\cite{Allen72} & - & PH & C & 1972 & A, D, E, M, O, S \\
Flow graph reducibility~\cite{Hecht72} & ACM & STOC & C & 1972 & D \\
Use-definition chains with applications~\cite{Kennedy78} & Elsevier & COLA (COMLAN) & C & 1972 & E \\
A global flow analysis algorithm~\cite{Kennedy72} & T\&F & JCM & J & 1972 & E \\
Safety of code motion~\cite{Kennedy72b} & T\&F & JCM & J & 1972 & O \\
On the Number of Operations Simultaneously Executable in Fortran-Like Programs and Their Resulting Speedup~\cite{Kuck72} & IEEE & TCO & J & 1972 & D, O \\
Smallest-last ordering and clustering and graph coloring algorithms~\cite{Matula83} & ACM & JACM & J & 1973 & - \\
Complete register allocation problems~\cite{Sethi73} & ACM & STOC & C & 1973 & \\
Testing flow graph reducibility~\cite{Tarjan73} & ACM & STOC & C & 1973 & A \\
A unified approach to global program optimization~\cite{Kildall73} & ACM & POPL & C & 1973 & A, D, E, M, O, S \\
Fast algorithms for the elimination of common subexpressions~\cite{Ullman73} & Springer & Acta Inf. & J & 1973 & A, D, E, O \\
Interprocedural Analysis and the Information derived by it~\cite{Allen74b} & Springer & Prog. Meth. & J & 1974 & - \\
Register allocation via usage counts~\cite{Freiburghouse74} & ACM & CACM & J & 1974 & A \\
Analysis of structured programs~\cite{Kosaraju73} & ACM & STOC & C & 1974 & D \\
Characterizations of Reducible Flow Graphs~\cite{Hecht74} & ACM & JACM & J & 1974 & D, E \\
The parallel execution of DO loops~\cite{Lamport74} & ACM & CACM & J & 1974 & D, O \\
Interprocedural Data Flow Analysis~\cite{Allen74} & - & IFIP & J & 1974 & D, O \\
Application of lattice algebra to loop optimization~\cite{Fong75} & ACM & POPL & C & 1975 & - \\
Program optimization - theory and practice~\cite{Loveman75} & ACM & PLDI (SCC) & C & 1975 & - \\
Time and parallel processor bounds for linear recurrence systems~\cite{Chen75} & IEEE & TCO & J & 1975 & S \\
A simple algorithm for global data flow analysis problems~\cite{Hecht75} & SIAM & SICOMP & J & 1975 & A, E, O \\
Program improvement by source to source transformation~\cite{Loveman76} & ACM & POPL & C & 1976 & - \\
A program data flow analysis procedure~\cite{Allen76} & ACM & CACM & J & 1976 & A \\
Recursion analysis for compiler optimization~\cite{Walter76} & ACM & CACM & J & 1976 & O \\
Optimal Code Generation for Expression Trees~\cite{Aho76b} & ACM & JACM & J & 1976 & A, D, E \\
A Fast and Usually Linear Algorithm for Global Flow Analysis~\cite{Graham76} & ACM & JACM & J & 1976 & E, O \\
Code generation for expressions with common subexpressions~\cite{Aho76} & ACM & POPL & C & 1976 & E, S \\
Global data flow analysis and iterative algorithms~\cite{Kam76} & ACM & JACM & J & 1976 & E, O \\
Compiler Analysis of the Value Ranges for Variables~\cite{Harrison77} & IEEE & TSE & J & 1977 & - \\
On Live-Dead Analysis for Global Data Flow Problems~\cite{Kou77} & ACM & JACM & J & 1977 & A \\
Symbolic evaluation and the global value graph~\cite{Reif77} & ACM & POPL & C & 1977 & A \\
High-level data flow analysis~\cite{Rosen77} & ACM & CACM & J & 1977 & A \\
Abstract interpretation~\cite{Cousot77} & ACM & POPL & C & 1977 & D \\
An algorithm for reduction of operator strength~\cite{Cocke77} & ACM & CACM & J & 1977 & E \\
A transformation system for developing recursive programs~\cite{Burstall77} & ACM & JACM & J & 1977 & S \\
Arithmetic shifting considered harmful~\cite{Steele77} & ACM & SIGPLAN Notices & J & 1977 & S \\
Monotone data flow analysis frameworks~\cite{Kam77} & Springer & Acta Inf. & J & 1977 & A, D, E, O \\
Program Improvement by Source-to-Source Transformation~\cite{Loveman77} & ACM & CACM & J & 1977 & D, O \\
An analysis of inline substitution for a structured programming language~\cite{Scheifler77} & ACM & CACM & J & 1977 & M, S \\
Program Optimization Using Invariants~\cite{Katz78} & IEEE & TSE & J & 1978 & - \\
A new method for compiler code generation~\cite{Glanville78} & ACM & POPL & C & 1978 & D \\
A practical interprocedural data flow analysis algorithm~\cite{Barth78} & ACM & CACM & J & 1978 & A, D, E, O \\
Data Flow Analysis for Procedural Languages~\cite{Rosen79} & ACM & JACM & J & 1979 & A \\
Constructing the Call Graph of a Program~\cite{Ryder79} & IEEE & TSE & J & 1979 & O \\
Data flow languages~\cite{Ackerman79} & IEEE & MARK & W & 1979 & S \\
Time and parallel processor bounds for Fortran-like loops~\cite{Chen79} & IEEE & TCO & J & 1979 & S \\
Unrolling loops in Fortran~\cite{Dongarra79} & Wiley & SPE & J & 1979 & S \\
A fast algorithm for finding dominators in a flowgraph~\cite{Lengauer79} & ACM & TOPLAS & J & 1979 & A, E, M, O \\
An efficient way to find the side effects of procedural calls and the aliases of variables~\cite{Banning79} & ACM & POPL & C & 1979 & A, D, E, S \\
Global optimization by suppression of partial redundancies~\cite{Morel79} & ACM & CAMC & J & 1979 & A, D, E, O, S \\
Predicting the effects of optimization on a procedure body~\cite{Ball79} & ACM & PLDI (SCC) & C & 1979 & E, S \\
Structural analysis: A new approach to flow analysis in optimizing compilers~\cite{Sharir80} & Elsevier & COLA (COMLAN) & C & 1980 & A \\
The design and application of a retargetable peephole optimizer~\cite{Davidson80} & ACM & TOPLAS & J & 1980 & E \\
Data flow supercomputers~\cite{Dennis80} & IEEE & Computer & J & 1980 & S \\
Program optimization and parallelization using idioms~\cite{Pinter91} & ACM & POPL & C & 1980 & - \\
High-speed multiprocessors and compilation techniques~\cite{Padua80} & IEEE & TCO & J & 1980 & S \\
A composite algorithm for strength reduction and code movement optimization~\cite{Dhamdhere80} & Springer & ACIS & J & 1980 & E \\
Interprocedural data flow analysis in the presence of pointers, procedure variables, and label variables~\cite{Weihl80} & ACM & POPL & C & 1980 & A, E, O \\
Deciding Linear Inequalities by Computing Loop Residues~\cite{Shostak81} & ACM & JACM & J & 1981 & D \\
A precise inter-procedural data flow algorithm~\cite{Myers81} & ACM & POPL & C & 1981 & O, S \\
Register allocation via coloring~\cite{Chaitin81} & Elsevier & COLA (COMLAN) & C & 1981 & A, D, E, O, S \\
Reduction of operator strength~\cite{Allen81} & NJ & Program flow analysis & J & 1981 & A, E, S \\
Dependence graphs and compiler optimizatlons~\cite{Kuck81b} & ACM & POPL & C & 1981 & O, S \\
On the performance enhancement of paging systems through program analysis and transformations~\cite{Kuck81} & IEEE & TCO & J & 1981 & D, S \\
Using Peephole Optimization on Intermediate Code~\cite{Tanenbaum82} & ACM & TOPLAS & J & 1982 & - \\
Optimizing delayed branches~\cite{Gross82} & ACM & MICRO & W & 1982 & D \\
A composite hoisting-strength reduction transformation for global program optimization part i~\cite{Joshi82} & T\&F & JCM & J & 1982 & E \\
Optimization of range checking~\cite{Markstein82} & ACM & PLDI (SCC) & C & 1982 & E \\
Register allocation and spilling via graph coloring~\cite{Chaitin82} & ACM & PLDI & C & 1982 & A, D, E, M, O, S \\
Experience with the SETL optimizer~\cite{Freudenberger83} & ACM & TOPLAS & J & 1983 & S \\
Postpass Code Optimization of Pipeline Constraints~\cite{Hennessy83} & ACM & TOPLAS & J & 1983 & A, E \\
Conversion of control dependence to data dependence~\cite{Allen83} & ACM & POPL & C & 1983 & O, S \\
Code selection through object code optimization~\cite{Davidson84c} & ACM & TOPLAS & J & 1984 & - \\
Register allocation and exhaustive peephole optimization~\cite{Davidson84b} & Wiley & SPE & J & 1984 & E \\
Automatic generation of peephole optimizations~\cite{Davidson84} & Springer & CC & C & 1984 & E \\
Analysis of interprocedural side effects in a parallel programming environment~\cite{Callahan87} & Springer & ICSP & C & 1984 & O \\
Polyvariant mixed computation for analyzer programs~\cite{Bulyonkov84} & Springer & Acta Inf. & J & 1984 & O \\
Stream processing~\cite{Goldberg84} & ACM & LFP & C & 1984 & O \\
A hierarchical basis for reordering transformations~\cite{Warren84} & ACM & POPL & C & 1984 & O \\
Register allocation by priority-based coloring~\cite{Chow84} & ACM & PLDI (SCC) & C & 1984 & A, E, O \\
Automatic loop interchange~\cite{Allen84} & ACM & PLDI (SCC) & C & 1984 & O, S \\
Efficient computation of flow insensitive interprocedural summary information~\cite{Cooper84} & ACM & PLDI (SCC) & C & 1984 & A, O \\
Program transformations in a denotational setting~\cite{Nielson85} & ACM & TOPLAS & J & 1985 & - \\
On linearizing parallel code~\cite{Ferrante85} & ACM & POPL & C & 1985 & O \\
Distributed execution of functional programs using serial combinators~\cite{Hudak85} & IEEE & TCO & J & 1985 & S \\
Strictness analysis-a practical approach~\cite{Clack85} & Springer & FPCA & C & 1985 & S \\
A linear algorithm for finding dominators in flow graphs and related problems~\cite{Harel85} & ACM & STOC & C & 1985 & E, M, O \\
Advanced compiler optimizations for supercomputers~\cite{Padua86} & ACM & CACM & J & 1986 & - \\
Efficient compilation of linear recursive functions into object level loops~\cite{Harrison86} & ACM & PLDI (SCC) & C & 1986 & - \\
The impact of interprocedural analysis and optimization in the Rn programming environment~\cite{Cooper86b} & ACM & TOPLAS (LOPES) & C & 1986 & - \\
Efficient instruction scheduling for a pipelined architecture~\cite{Gibbons86} & ACM & PLDI (SCC) & C & 1986 & A \\
Efficient symbolic analysis of programs~\cite{Reif86} & ACM & JCSS & J & 1986 & A \\
Graph-Based Algorithms for Boolean Function Manipulation~\cite{Bryant86} & IEEE & TC & J & 1986 & D \\
Loops skewing: The wavefront method revisited~\cite{Wolfe86} & Springer & JPP & J & 1986 & O \\
Highly concurrent scalar processing~\cite{Hsu86} & ACM & CAN & J & 1986 & O \\
Multiplication by integer constants~\cite{Bernstein86} & Wiley & SPE & J & 1986 & S \\
Global register allocation at link time~\cite{Wall86} & ACM & PLDI & C & 1986 & A, E \\
Interprocedural constant propagation~\cite{Callahan86} & ACM & PLDI & C & 1986 & A, D, E, O, S \\
Interprocedural optimization: eliminating unnecessary recompilation~\cite{Cooper86} & ACM & CC & C & 1986 & A, E, O \\
Interprocedural dependence analysis and parallelization~\cite{Burke86} & ACM & PLDI & C & 1986 & O, S \\
Effectiveness of a machine-level, global optimizer~\cite{Johnson86}, & ACM & PLDI (SCC) & C & 1986 & A, E \\
Direct parallelization of call statements~\cite{Triolet86} & ACM & PLDI (SCC) & C & 1986 & O, S \\
Code motion of control structures in high-level languages~\cite{Cytron86} & ACM & POPL & C & 1986 & E, M \\
Automatic inference and fast interpretation of peephole optimization rules~\cite{Davidson87} & Wiley & SPE & J & 1987 & E \\
Compiler Algorithms for Synchronization~\cite{Midkiff87} & IEEE & TCO & J & 1987 & O \\
Automatic decomposition of scientific programs for parallel execution~\cite{Allen87b} & ACM & POPL & C & 1987 & O \\
Guided Self-Scheduling: A Practical Scheduling Scheme for Parallel Supercomputers~\cite{Polychronopoulos87b} & IEEE & TCO & J & 1987 & S \\
Loop coalescing: A compiler transformation for parallel machines~\cite{Polychronopoulos87} & ACM & ICPP & C & 1987 & S \\
Strategies for cache and local memory management by global program transformation~\cite{Gannon87} & Springer & ICS & C & 1987 & S \\
The program dependence graph and its use in optimization~\cite{Ferrante87} & ACM & TOPLAS & J & 1987 & A, E, M, O \\
Automatic translation of Fortran programs to vector form~\cite{Allen87} & ACM & TOPLAS & J & 1987 & D, O, S \\
Safety consideration for storage allocation optimizations~\cite{Chase88} & ACM & PLDI & C & 1988 & - \\
Efficient and correct execution of parallel programs that share memory~\cite{Shasha88} & ACM & TOPLAS (LOPES) & C & 1988 & - \\
On the control dependence in the program dependence graph~\cite{Natour88} & ACM & CSC & C & 1988 & - \\
Resource requirements of dataflow programs~\cite{Culler88} & ACM & ISCA & C & 1988 & - \\
Incremental data flow analysis via dominator and attribute update~\cite{Carroll88} & ACM & POPL & C & 1988 & - \\
An efficient approach to data flow analysis in a multiple pass global optimizer~\cite{Jain88} & ACM & PLDI & C & 1988 & A \\
A solution to a problem with Morel and Renvoise's ``Global optimization by suppression of partial redundancies''~\cite{Drechsler88} & ACM & TOPLAS & J & 1988 & E \\
Efficient computation of flow-insensitive interprocedural summary information—a correction~\cite{Cooper88b} & ACM & SIGPLAN Notices & J & 1988 & O \\
Dependence of multi-dimensional array references~\cite{Wallace88} & ACM & ICS & C & 1988 & O \\
The importance of direct dependences for automatic parallelization~\cite{Brandes88} & ACM & ICS & C & 1988 & O \\
Introducing symbolic problem solving techniques in the dependence testing phases of a vectorizer~\cite{Lichnewsky88} & ACM & ICS & C & 1988 & O \\
Generating sequential code from parallel code~\cite{Ferrante88} & ACM & SC & C & 1988 & O \\
CRegs: a new kind of memory for referencing arrays and pointers~\cite{Dietz88} & ACM & ICS & C & 1988 & - \\
Advanced loop optimizations for parallel computers~\cite{Polychronopoulos88} & ACM & ICS & C & 1988 & S \\
An introduction to a formal theory of dependence analysis~\cite{Banerjee88} & Springer & JSC & J & 1988 & S \\
Analysis of interprocedural side effects in a parallel programming environment~\cite{Callahan88c} & ACM & ICS & C & 1988 & S \\
Array expansion~\cite{Feautrier88} & ACM & ICS & C & 1988 & S \\
Loop quantization: A generalized loop unwinding technique~\cite{Nicolau88} & ACM & JPDC & J & 1988 & S \\
Supernode partitioning~\cite{Irigoin88} & ACM & PLDI & C & 1988 & S \\
A fast algorithm for code movement optimisation~\cite{Dhamdhere88} & ACM & PLDI & C & 1988 & A, E \\
Compiling programs for distributed-memory multiprocessors~\cite{Callahan88b} & Elsevier & JSC & J & 1988 & O, S \\
Optimal loop parallelization~\cite{Aiken88} & ACM & PLDI & C & 1988 & A, E, M, S \\
Software pipelining: an effective scheduling technique for VLIW machines~\cite{Lam88} & ACM & PLDI & C & 1988 & D, E \\
The program summary graph and flow-sensitive interprocedual data flow analysis~\cite{Callahan88d} & ACM & PLDI & C & 1988 & A, O \\
A framework for determining useful parallelism~\cite{Allen88b} & ACM & ICS & C & 1988 & O, S \\
An overview of the PTRAN analysis system for multiprocessing~\cite{Allen88} & Elsevier & JPDC & J & 1988 & D, S \\
Efficient interprocedural analysis for program parallelization and restructuring~\cite{Li88} & ACM & PPoPP (PPEALS) & C & 1988 & O, S \\
Compiling issues for supercomputers~\cite{Girkar88} & ACM/IEEE & SC & C & 1988 & O, S \\
Minimizing register usage penalty at procedure calls~\cite{Chow88} & ACM & PLDI & C & 1988 & A, S \\
Estimating interlock and improving balance for pipelined architectures~\cite{Callahan88} & Elsevier & JPDC & J & 1988 & O, S \\
Global value numbers and redundant computations~\cite{Rosen88} & ACM & POPL & C & 1988 & E, O \\
Perfect pipelining: A new loop parallelization technique~\cite{Aiken88b} & Springer & ESOP & C & 1988 & A, S \\
Code scheduling and register allocation in large basic blocks~\cite{Goodman88} & ACM & SC & C & 1988 & A, E \\
Interprocedural side-effect analysis in linear time~\cite{Cooper88} & ACM & PLDI & C & 1988 & A, E, O \\
A technique for summarizing data access and its use in parallelism enhancing transformations~\cite{Balasundaram89} & ACM & PLDI & C & 1989 & - \\
Interprocedural analysis vs. procedure integration~\cite{Richardson89} & Elsevier & IPL & J & 1989 & - \\
Unified management of registers and cache using liveness and cache bypass~\cite{Chi89} & ACM & PLDI & C & 1989 & A \\
A new algorithm for composite hoisting and strength reduction optimisation~\cite{Dhamdhere89} & T\&F & JCM & J & 1989 & E \\
Interprocedual data flow testing~\cite{Harrold89} & ACM & SEN & C & 1989 & - \\
Program optimization for instruction caches~\cite{McFarling89} & ACM & ASPLOS & C & 1989 & A \\
Dependence analysis for pointer variables~\cite{Horwitz89} & ACM & PLDI & C & 1989 & E \\
The program dependence graph and vectorization~\cite{Baxter89} & ACM & POPL & C & 1989 & O \\
Achieving high instruction cache performance with an optimizing compiler~\cite{Hwu89} & ACM & ISCA & C & 1989 & S \\
Evaluating the performance of four snooping cache coherency protocols~\cite{Eggers89} & IEEE & ICSA & C & 1989 & S \\
Scans as primitive parallel operations~\cite{Blelloch89} & IEEE & TCO & J & 1989 & S \\
Code generation using tree matching and dynamic programming~\cite{Aho89} & ACM & TOPLAS & J & 1989 & A, D, E, M \\
Register allocation via clique separators~\cite{Gupta89} & ACM & PLDI & C & 1989 & A, E \\
Fast interprocedual alias analysis~\cite{Cooper89} & ACM & POPL & C & 1989 & A, E, O, S \\
Coloring heuristics for register allocation~\cite{Briggs89} & ACM & PLDI & C & 1989 & A, E, O \\
More iteration space tiling~\cite{Wolfe89} & ACM/IEEE & SC & C & 1989 & A, S \\
Data dependence analysis on multi-dimensional array references~\cite{Li89} & ACM & ICS & C & 1989 & O, S \\
Spill code minimization techniques for optimizing compliers~\cite{Bernstein89} & ACM & PLDI & C & 1989 & A, E \\
Customization: Optimizing compiler technology for SELF, a dynamically-typed OOP language~\cite{Chambers89b} & ACM & PLDI & C & 1989 & O, S \\
An efficient method of computing static single assignment form~\cite{Cytron89} & ACM & POPL & C & 1989 & A, O \\
The value flow graph: A program representation for optimal program transformations~\cite{Steffen90} & Springer & ESOP & C & 1990 & - \\
Compiler techniques for data partitioning of sequentially iterated parallel loops~\cite{Hudak90} & ACM & SC & C & 1990 & - \\
Vectorization of tree traversals~\cite{Hernquist90} & Elsevier & JCP & J & 1990 & - \\
Loop displacement: an approach for transforming and scheduling loops for parallel execution~\cite{Gupta90b} & ACM & SC & C & 1990 & - \\
Experience with interprocedural analysis of array side effects~\cite{Havlak90} & ACM & SC & C & 1990 & - \\
An approach to ordering optimizing transformations~\cite{Whitfield90} & ACM & PPoPP & C & 1990 & A \\
Register allocation across procedure and module boundaries~\cite{Santhanam90} & ACM & PLDI & C & 1990 & A \\
Region Scheduling: An Approach for Detecting and Redistributing Parallelism~\cite{Gupta90} & IEEE & TSE & J & 1990 & E \\
Constructing the procedure call multigraph~\cite{Callahan90b} & IEEE & TSE & J & 1990 & O \\
On the perfect accuracy of an approximate subscript analysis test~\cite{Klappholz90} & ACM & CAN & J & 1990 & O \\
Structured dataflow analysis for arrays and its use in an optimizing compiler~\cite{Gross90} & Wiley & Software: Practice and Experience & J & 1990 & O \\
Compilation of Haskell array comprehensions for scientific computing~\cite{Anderson90} & ACM & PLDI & C & 1990 & S \\
How to read floating point numbers accurately~\cite{Clinger90} & ACM & PLDI & C & 1990 & S \\
How to print floating-point numbers accurately~\cite{Steele90} & ACM & PLDI & C & 1990 & S \\
Profile guided code positioning~\cite{Pettis90} & ACM & PLDI & C & 1990 & S \\
Updating distributed variables in local computations~\cite{Gerndt90} & Wiley & SPE & J & 1990 & S \\
An interval-based approach to exhaustive and incremental interprocedural data-flow analysis~\cite{Burke90} & ACM & TOPLAS & J & 1990 & E, O \\
The priority-based coloring approach to register allocation~\cite{Chow90} & ACM & TOPLAS & J & 1990 & A, D, E, S \\
Improving register allocation for subscripted variables~\cite{Callahan90} & ACM & PLDI & C & 1990 & A, E, M, O, S \\
Analysis of pointers and structures~\cite{Chase90} & ACM & PLDI & C & 1990 & A, E \\
Loop distribution with arbitrary control flow~\cite{Kennedy90} & ACM & PLDI & C & 1990 & O, S \\
Graph coloring register allocation for processors with multi-register operands~\cite{Nickerson90} & ACM & PLDI & C & 1990 & A, E \\
A data locality optimizing algorithm~\cite{Wolf91b} & ACM & PLDI & C & 1991 & - \\
On optimal parallelization of arbitrary loops~\cite{Schwiegelshohn91} & Elsevier & JPDC & J & 1991 & - \\
On the adequacy of dependence-based representations for programs with heaps~\cite{Pfeiffer91} & Springer & TACS & C & 1991 & - \\
Automatic construction of sparse data flow evaluation graphs~\cite{Choi91} & ACM & POPL & C & 1991 & - \\
Compiler optimizations for Fortran D on MIMD distributed-memory machines~\cite{Hiranandani91} & ACM & SC & C & 1991 & - \\
Register allocation via hierarchical graph coloring~\cite{Callahan91} & ACM & PLDI & C & 1991 & A \\
Circular scheduling: a new technique to perform software pipelining~\cite{Jain91} & ACM & PLDI & C & 1991 & A \\
Efficient DAG construction and heuristic calculation for instruction scheduling~\cite{Smotherman91} & ACM & MICRO & W & 1991 & E \\
Efficiently computing static single assignment form and the control dependence graph~\cite{Cytron91b} & ACM & TOPLAS & J & 1991 & M \\
Software prefetching~\cite{Callahan91b} & ACM & ASPLOS & C & 1991 & O \\
Compiling global name-space parallel loops for distributed execution~\cite{Koelbel91} & IEEE & TPDS & J & 1991 & O \\
An implementation of interprocedural bounded regular section analysis~\cite{Havlak91} & ACM & TPDS & J & 1991 & O \\
Limits of instruction-level parallelism~\cite{Wall91} & ACM & ASPLOS & C & 1991 & S \\
Uniform techniques for loop optimization~\cite{Pugh91} & ACM & ICS & C & 1991 & S \\
A data locality optimizing~\cite{Wolf91b} & ACM & PLDI & C & 1991 & A, D, M, O \\
Constant propagation with conditional branches~\cite{Wegman91} & ACM & TOPLAS & J & 1991 & A, E, M, O, S \\
Efficient and exact data dependence analysis~\cite{Maydan91} & ACM & PLDI & C & 1991 & A, D, O \\
Efficiently computing static single assignment~\cite{Cytron91} & ACM & TOPLAS & J & 1991 & A, D, E, O \\
Global instruction scheduling for superscalar machines~\cite{Bernstein91} & ACM & PLDI & C & 1991 & A, D, E \\
Practical adaption of the global optimization algorithm of Morel and Renvoise~\cite{Dhamdhere91} & ACM & TOPLAS & J & 1991 & A, E \\
The cache performance and optimizations of blocked algorithms~\cite{Lam91} & ACM & ASPLOS & C & 1991 & A, D \\
A loop transformation theory and an algorithm to maximize parallelism~\cite{Wolf91} & IEEE & TPDS & J & 1991 & O, S \\
Dataflow analysis of array and scalar references~\cite{Feautrier91} & Springer & JPP & J & 1991 & A, S \\
Optimization of array accesses by collective loop transformations~\cite{Sarkar91} & ACM & SC & C & 1991 & D, O \\
Interprocedural transformations for parallel code generation~\cite{Hall91} & ACM/IEEE & SC & C & 1991 & O, S \\
Practical dependence testing~\cite{Goff91} & ACM & PLDI & C & 1991 & A, O \\
Procedure merging with instruction caches~\cite{McFarling91} & ACM & PLDI & C & 1991 & A, S \\
An experiment with inline substitution~\cite{Cooper91} & Wiley & SPE & J & 1991 & E, S \\
Access normalization: loop restructuring for NUMA compilers~\cite{Li91b} & ACM & ASPLOS & C & 1991 & - \\
An efficient resource-constrained global scheduling technique for superscalar and VLIW processors~\cite{Moon92} & ACM & MICRO & W & 1992 & - \\
Non-unimodular transformations of nested loops~\cite{Ramanujam92} & ACM & SC & C & 1992 & - \\
A general framework for iteration-reordering loop transformations~\cite{Sarkar92} & ACM & PLDI & C & 1992 & - \\
A program integration algorithm that accommodates semantics-preserving transformations~\cite{Yang92} & ACM & TOSEM & J & 1992 & - \\
The transitive closure of control dependence: The iterated join~\cite{Weiss92} & ACM & TOPLAS (LOPLAS) & J & 1992 & - \\
Abstract description of pointer data structures: an approach for improving the analysis and optimization of imperative programs~\cite{Hummel94} & ACM & TOPLAS (LOPLAS) & J & 1992 & - \\
Abstractions for recursive pointer data structures: improving the analysis and transformation of imperative programs~\cite{Hanxleden92} & ACM & PLDI & C & 1992 & - \\
Generalized dominators and post-dominators~\cite{Gupta92} & ACM & POPL & C & 1992 & - \\
A comprehensive approach to parallel data flow analysis~\cite{Lee92} & ACM & ICS & C & 1992 & - \\
Integrating scalar optimization and parallelization~\cite{Tjiang92b} & Springer & LCPC & C & 1992 & A \\
Sharlit—a tool for building optimizers~\cite{Tjiang92} & ACM & PLDI & C & 1992 & A \\
How to analyze large programs efficiently and informatively~\cite{Dhamdhere92} & ACM & PLDI & C & 1992 & A \\
Compiler code transformations for superscalar-based high performance systems~\cite{Mahlke92} & IEEE & SC & C & 1992 & A \\
Engineering a simple, efficient code-generator generator~\cite{Fraser92} & ACM & TOPLAS (LOPLAS) & J & 1992 & D \\
Some efficient solutions to the affine scheduling problem. I. One-dimensional time~\cite{Feautrier92} & Elsevier & JPP & J & 1992 & D \\
Avoiding unconditional jumps by code replication~\cite{Mueller92} & ACM & PLDI & C & 1992 & E \\
Rematerialization~\cite{Briggs92b} & ACM & PLDI & C & 1992 & E \\
Coloring register pairs~\cite{Briggs92} & ACM & TOPLAS (LOPLAS) & J & 1992 & E \\
Optimizing for parallelism and data locality~\cite{Kennedy92} & ACM & SC & C & 1992 & O \\
Maximizing loop parallelism and improving data locality via loop fusion and distribution~\cite{Kennedy93} & ACM & LCPC & W & 1992 & O \\
Beyond induction variables~\cite{Wolfe92b} & ACM & PLDI & C & 1992 & O \\
Efficient call graph analysis~\cite{Hall92} & ACM & TOPLAS (LOPLAS) & J & 1992 & O \\
A safe approximate algorithm for interprocedural aliasing~\cite{Landi92} & ACM & PLDI & C & 1992 & O \\
Relaxing SIMD control flow constraints using loop transformations~\cite{Hanxleden92} & ACM & PLDI & C & 1992 & S \\
Unexpected side effects of inline substitution: a case study~\cite{Cooper92} & ACM & TOPLAS (LOPLAS) & J & 1992 & S \\
Eliminating false positives using the omega test~\cite{Pugh92b} & ACM & PLDI & C & 1992 & A, D, O \\
Lazy code motion~\cite{Knoop92} & ACM & PLDI & C & 1992 & A, D, E \\
Software support for speculative loads~\cite{Rogers92} & ACM & ASPLOS & C & 1992 & A, E \\
A practical algorithm for exact array dependence analysis~\cite{Pugh92} & ACM & CACM & J & 1992 & O, S \\
Array privatization for parallel execution of loops~\cite{Li92} & ACM & ICS & C & 1992 & O, S \\
The power test for data dependence~\cite{Wolfe92} & IEEE & TCO & J & 1992 & A, S \\
Eliminating branches using a superoptimizer and the GNU C compiler~\cite{Granlund92} & ACM & PLDI & C & 1992 & E, S \\
Design and evaluation of a compiler algorithm for prefetching~\cite{Mowry92} & ACM & ASPLOS & C & 1992 & D, O \\
Data dependence and data-flow analysis of arrays~\cite{Maydan93b} & Springer & LCPC & C & 1992 & - \\
Advanced compiler optimizations for sparse computations~\cite{Bik93} & ACM & SC & C & 1993 & - \\
Access normalization: loop restructuring for NUMA computers~\cite{Li93} & ACM & TOCS & J & 1993 & - \\
On the conversion of indirect to direct recursion~\cite{Kaser93} & ACM & TOPLAS (LOPLAS) & J & 1993 & - \\
A practical data flow framework for array reference analysis and its use in optimizations~\cite{Duesterwald93} & ACM & PLDI & C & 1993 & - \\
Using lifetime predictors to improve memory allocation performance~\cite{Barrett93} & ACM & PLDI & C & 1993 & - \\
Data flow analysis for parallel programs~\cite{Ito93} & ACM & CSC & C & 1993 & - \\
Dependence-based program analysis~\cite{Johnson93} & ACM & PLDI & C & 1993 & A \\
A variation of Knoop, R{\"u}thing, and Steffen's lazy code motion~\cite{Drechsler93} & ACM & PLDI & C & 1993 & E \\
Lazy strength reduction~\cite{Knoop93} & C\&H & JPL & J & 1993 & A, E \\
Collective loop fusion for array contraction~\cite{Gao93} & Springer & LCPC & C & 1993 & O \\
Interprocedural constant propagation: an empirical study~\cite{Metzger93} & ACM & TOPLAS (LOPLAS) & J & 1993 & O \\
Symbolic analysis: A basis for parallelization, optimization, and scheduling of programs~\cite{Haghighat93} & Springer & LCPC & W & 1993 & O \\
Array-data flow analysis and its use in array privatization~\cite{Maydan93} & ACM & POPL & C & 1993 & S \\
Automatic array alignment in data-parallel programs~\cite{Chatterjee93} & ACM & POPL & C & 1993 & S \\
Global optimizations for parallelism and locality on scalable parallel machines~\cite{Anderson93} & ACM & PLDI & C & 1993 & S \\
Instruction-Level Parallel Processing: History, Overview, and Perspective~\cite{Rau93} & Springer & JSC & J & 1993 & S \\
A practical system for intermodule code optimization at link-time~\cite{Srivastava93} & C\&H & JPL & J & 1993 & A \\
Loop-level parallelism in numeric and symbolic programs~\cite{Larus93} & IEEE & TPDS & J & 1993 & S \\
Orchestrating interactions among parallel computations~\cite{Graham93} & ACM & PLDI & C & 1993 & S \\
The superblock: an effective technique for VLIW and superscalar compilation~\cite{Hwu93} & Springer & JSC & J & 1993 & S \\
Optimizing array bound checks using flow analysis~\cite{Gupta93} & ACM & PLDI & C & 1993 & A, E \\
Register allocation with instruction scheduling~\cite{Pinter93} & ACM & PLDI & C & 1993 & A, E \\
A methodology for procedure cloning~\cite{Cooper93} & Elsevier & COLA (COMLAN) & J & 1993 & A, O, S \\
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects~\cite{Choi93} & ACM & POPL & C & 1993 & E, O, S \\
Automatic array privatization~\cite{Tu93} & Springer & LCPC & W & 1993 & O, S \\
Interprocedural modification side effect analysis with pointer aliasing~\cite{Landi93} & ACM & PLDI & C & 1993 & M, S \\
Branch prediction for free~\cite{Ball93} & ACM & PLDI & C & 1993 & A, M \\
Enabling unimodular transformations~\cite{Sass94} & ACM & SC & C & 1994 & - \\
Compiler optimizations for improving data locality~\cite{Carr94c} & ACM & ASPLOS & C & 1994 & - \\
The revival transformation~\cite{Feigen94} & ACM & PLDI & C & 1994 & - \\
The range test: a dependence test for symbolic, non-linear expressions~\cite{Blume94} & ACM & SC & C & 1994 & - \\
Link-time optimization of address calculation on a 64-bit architecture~\cite{Srivastava94} & ACM & PLDI & C & 1994 & A \\
Effective partial redundancy elimination~\cite{Briggs94b} & ACM & PLDI & C & 1994 & A \\
Partial dead code elimination~\cite{Knoop94} & ACM & PLDI & C & 1994 & A \\
A general data dependence test for dynamic, pointer-based data structures~\cite{Hummel94} & ACM & PLDI & C & 1994 & A \\
Instruction scheduling over regions: A framework for scheduling across basic blocks~\cite{Mahadevan94} & Springer & CC & C & 1994 & A \\
Value dependence graphs: representation without taxation~\cite{Weise94} & ACM & POPL & C & 1994 & A \\
Zero-cost range splitting~\cite{Kurlander94} & ACM & PLDI & C & 1994 & E \\
Reducing branch costs via branch alignment~\cite{Calder94} & ACM & OSR & J & 1994 & E \\
Improving the ratio of memory operations to floating-point operations in loops~\cite{Carr94b} & ACM & TOPLAS & J & 1994 & M \\
Optimizing multi-method dispatch using compressed dispatch tables~\cite{Amiel94} & ACM & OOPSLA & C & 1994 & M \\
Improving the accuracy of static branch prediction using branch correlation~\cite{Young94} & ACM & ASPLOS & C & 1994 & M \\
A compiler framework for restructuring data declarations to enhance cache and TLB effectiveness~\cite{Bacon94b} & IEEE & CASCON & C & 1994 & S \\
False sharing and spatial locality in multiprocessor caches~\cite{Torrellas94} & IEEE & TCO & J & 1994 & S \\
Reassociation and strength reduction~\cite{Markstein94} & ACM & SCO & C & 1994 & S \\
The alignment-distribution graph~\cite{Chatterjee94} & Springer & LCPC & W & 1994 & S \\
Improvements to graph coloring register allocation~\cite{Briggs94} & ACM & TOPLAS & J & 1994 & A, E, M \\
Context-sensitive interprocedural points-to analysis in the presence of function pointers~\cite{Emami94} & ACM & PLDI & C & 1994 & D, E \\
Interprocedural may-alias analysis for pointers: beyond k-limiting~\cite{Deutsch94} & ACM & PLDI & C & 1994 & A, E \\
Scalar replacement in the presence of conditional control flow~\cite{Carr94} & Wiley & SPE & J & 1994 & E, O \\
% Corpus-based static branch prediction~\cite{Calder95} & ACM & PLDI & C & 1995 & A \\
% Resource-Constrained Software Pipelining~\cite{Aiken95} & IEEE & TPDS & J & 1995 & A \\
% Elimination of redundant array subscript range checks~\cite{Kolte95} & ACM & PLDI & C & 1995 & A \\
% Improving balanced scheduling with compiler optimizations that increase instruction-level parallelism~\cite{Jack95} & ACM & PLDI & C & 1995 & A \\
% Accurate static branch prediction by value range propagation~\cite{Patterson95} & ACM & PLDI & C & 1995 & A \\
% Tile size selection using cache organization and data layout~\cite{Coleman95} & ACM & PLDI & C & 1995 & E \\
% Combining analyses, combining optimizations~\cite{Click95b} & ACM & TOPLAS & J & 1995 & E \\
% Global code motion/global value numbering~\cite{Click95} & ACM & PLDI & C & 1995 & E \\
% A linear time algorithm for placing $\phi$-nodes~\cite{Sreedhar95} & ACM & POPL & C & 1995 & O \\
% Points-to analysis in linear time~\cite{Steensgaard96} & ACM & POPL & C & 1996 & D \\
% Aggressive loop unrolling in a retargetable, optimizing compiler~\cite{Davidson96} & Springer & CC & C & 1996 & E \\
% Iterated register coalescing~\cite{George96} & ACM & TOPLAS & J & 1996 & E, M \\
% Improving data locality with loop transformations~\cite{McKinley96} & ACM & TOPLAS & J & 1996 & E, O \\
% Maximizing parallelism and minimizing synchronization with affine transforms~\cite{Lim97} & ACM & POPL & C & 1997 & D \\
% Fast and accurate flow-insensitive points-to analysiS~\cite{Shapiro97} & ACM & PLDI & C & 1997 & E \\
% Register promotion in C programs~\cite{Lu97} & ACM & PLDI & C & 1997 & E \\
% Efficient procedure mapping using cache line coloring~\cite{Hashemi97} & ACM & PLDI & C & 1997 & E \\
% Spill code minimization via interference region spilling~\cite{Bergner97} & ACM & PLDI & C & 1997 & E \\
% Aggressive inlining~\cite{Ayers97} & ACM & PLDI & C & 1997 & E \\
% Optimal weighted loop fusion for parallel programs~\cite{Megiddo97} & ACM & SPAA & C & 1997 & O \\
% Near-optimal intraprocedural branch alignment~\cite{Young97} & ACM & PLDI & C & 1997 & E, M \\
% Value numbering~\cite{Briggs97} & Wiley & SPE & J & 1997 & A, E \\
% A new algorithm for scalar register promotion based on SSA form~\cite{Sastry98} & ACM & PLDI & C & 1998 & E \\
% Register promotion by sparse partial redundancy elimination of loads and stores~\cite{Lo98} & ACM & PLDI & C & 1998 & E \\
% Cost-optimal code motion~\cite{Hailperin98} & ACM & TOPLAS & J & 1998 & E \\
% International Conference on Compiler Construction~\cite{Cooper98} & Springer & CC & C & 1998 & E \\
% Complete removal of redundant expressions~\cite{Bodik98} & ACM & PLDI & C & 1998 & E \\
% Using integer sets for data-parallel program analysis and optimization~\cite{Adve98} & ACM & PLDI & C & 1998 & O \\
% Bidirectional data flow analysis: myths and reality~\cite{Khedker99} & ACM & SIGPLAN Notices & J & 1999 & A \\
% An affine partitioning algorithm to maximize parallelism and minimize communication~\cite{Lim99} & ACM & SC & C & 1999 & D \\
% Interprocedural pointer alias analysis~\cite{Hind99} & ACM & TOPLAS & J & 1999 & E \\
% Dominators in linear time~\cite{Alstrup99} & SIAM & SICOMP & J & 1999 & E \\
% Scalable context-sensitive flow analysis using instantiation constraints~\cite{Fahndrich00} & ACM & PLDI & C & 2000 & D \\
% Unification-based pointer analysis with directional assignments~\cite{Das00} & ACM & PLDI & C & 2000 & E \\
% Fast greedy weighted fusion~\cite{Kennedy00} & ACM & ICS & C & 2000 & O \\
% Monotonic evolution: an alternative to induction variable substitution for dependence analysis~\cite{Wu01} & ACM & ICS & C & 2001 & D \\
% Blocking and array contraction across arbitrarily nested loops using affine partitioning~\cite{Lim01} & ACM & PPoPP & C & 2001 & D \\
% Ultra-fast Aliasing Analysis using CLA: A Million Lines of C Code in a Second~\cite{Heintze01} & ACM & PLDI & C & 2001 & D \\
% A simple, fast dominance algorithm~\cite{Cooper01b} & Wiley & SPE & J & 2001 & E, O \\
% Operator Strength Reduction~\cite{Cooper01} & ACM & TOPLAS & J & 2001 & A, E \\
% Symbolic pointer analysis~\cite{Zhu02} & IEEE & ICCAD & C & 2002 & D \\
% Cloning-based context-sensitive pointer alias analysis using binary decision diagrams~\cite{Whaley04} & ACM & PLDI & C & 2004 & D \\
% Symbolic pointer analysis Revisited~\cite{Zhu04} & ACM & PLDI & C & 2004 & D \\
% A generalized algorithm for graph-coloring register allocation~\cite{Smith04} & ACM & PLDI & C & 2004 & E \\
% Optimistic register coalescing~\cite{Park04} & ACM & TOPLAS & J & 2004 & E \\
% Context-sensitive program analysis as database queries~\cite{Lam05b} & ACM & PODS & C & 2005 & D \\
% Improving software security with a C pointer analysis~\cite{Avots05} & IEEE & ICSE & C & 2005 & D \\
% Register allocation via coloring of chordal graphs~\cite{Pereira05} & Springer & APLAS & C & 2005 & E \\
% %%%%%%%%%%%%%%%%%%%%%%%% Polynomial time graph coloring register allocation~\cite{Brisk05} & ACM & PLDI & C & 2005 & E \\
% Optimal register allocation for SSA-form programs in polynomial time~\cite{Hack06} & Elsevier & IPL & J & 2006 & E \\
\end{longtable}
% \end{landscape}
}
% \bibliographystyle{plain}
\bibliography{local.bib}
\end{document}