VLDB 2026 Research / reviewers in the wild / expert
David W. Goodwin
dblp:71/5155
· DBLP profile ↗
3ranked-venue papers
2as first author
0since 2021 · last 1997
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 2 · 2 first-authorSystems, architecture and hardware · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
1 paper |
Compilers and program optimization · 67% Program analysis · 33% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Processor architecture and microarchitecture · 100% |
Topics — the 4 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › data flow analysis
interprocedural dataflow analysis |
0.0 | 1 | 1997 | Interprocedural Dataflow Analysis in an Executable Optimizer · PLDI 1997 |
Compilers and program optimization › interprocedural optimization
link-time optimization |
0.0 | 1 | 1997 | Interprocedural Dataflow Analysis in an Executable Optimizer · PLDI 1997 |
Compilers and program optimization › binary rewriting
post-link optimization |
0.0 | 1 | 1997 | Interprocedural Dataflow Analysis in an Executable Optimizer · PLDI 1997 |
Processor architecture and microarchitecture
branch prediction |
0.0 | 1 | 1992 | Toward zero-cost branches using instruction registers · MICRO 1992 |
Methods — techniques the papers use, named apart from their topics
compact control-flow representation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 1997 | Interprocedural Dataflow Analysis in an Executable OptimizerabstractInterprocedural dataflow information enables link-time and post-link-time optimizers to perform analyses and code transformations that are not possible in a traditional compiler. This paper describes the interprocedural dataflow analysis techniques used by Spike, a post-linktime optimizer for Alpha/NT executables. Spike uses dataflow analysis to summarize the register definitions, uses, and kills that occur external to each routine, allowing Spike to perform a variety of optimizations that require interprocedural dataflow information. Because Spike is designed to optimize large PC applications, the time required to perform interprocedural dataflow analysis could potentially be unacceptably long, limiting Spike's effectiveness and applicability. To decrease dataflow analysis time, Spike uses a compact representation of a program's intraprocedural and interprocedural control flow that efficiently summarizes the register definitions and uses that occur in the program. Experimental results are presented for the SPEC95 integer benchmarks and eight large PC applications. The results show that the compact representation allows Spike to compute interprocedural dataflow information in less than 2 seconds for each of the SPEC95 integer benchmarks. Even for the largest PC application containing over 1.7 million instructions in 340 thousand basic blocks, interprocedural dataflow analysis requires just 12 seconds. David W. Goodwin |
PLDI | 1 |
| 1996 | Optimal and Near-Optimal Global Register Allocation Using 0-1 Integer ProgrammingabstractThis paper presents a fundamentally new approach to global register allocation that optimally allocates registers and optimally places spill code, significantly decreasing spill code overhead compared with the traditional graph-coloring approach. The Optimal Register Allocation (ORA) approach formulates global register allocation as a 0–1 integer programming problem, incorporating all aspects of register allocation within a unified framework, including copy elimination, live range splitting, rematerialization, callee and caller register spilling, special instruction-operand requirements, and paired registers. A prototype ORA allocator is built into the Gnu C Compiler (GCC). For the SPEC92 integer benchmarks, the ORA allocator actually produces a net decrease of more than 100 million cycles across the entire benchmark set, because the dynamic copies the ORA allocator removes exceed the dynamic loads and stores that are inserted. In contrast, the GCC allocator and a Chaitin-style graph-coloring allocator each cause a net increase of more than 1 billion cycles. Because global register allocation is NP-complete, optimal register allocation has been considered intractable. However, the run-time complexity of the ORA approach is shown experimentally to be O(n3). A profile-guided hybrid allocation approach is proposed that uses the ORA allocator for the performance critical regions in the performance critical functions, while using a graph-coloring allocator for the non-critical functions and regions. An ORA-GCC hybrid allocator takes an average of 4.6 seconds per function to produce an allocation that is within 1% of optimal for 97% of the SPEC92 integer benchmark functions, showing that the hybrid allocator is practical as an advanced optimization for performance-critical codes. David W. Goodwin, Kent D. Wilken |
Softw. Pract. Exp. | 1 |
| 1992 | Toward zero-cost branches using instruction registers
Kent D. Wilken, David W. Goodwin |
MICRO | 2 |