Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Andrew Ayers

dblp:79/221 · DBLP profile ↗
← Back
3ranked-venue papers
3as first author
0since 2021 · last 2005
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 3 first-author

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
3 papers
Program analysis · 41% Compilers and program optimization · 29% Debugging and program repair · 21%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Distributed systems · 75% Memory systems · 25%

Topics — the 10 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
dynamic analysis
0.112005
TraceBack: first fault diagnosis by reconstruction of distributed control flow · PLDI 2005
Debugging and program repair
fault localization
0.112005
TraceBack: first fault diagnosis by reconstruction of distributed control flow · PLDI 2005
Program analysis › dynamic analysis
runtime instrumentation
0.112005
TraceBack: first fault diagnosis by reconstruction of distributed control flow · PLDI 2005
Compilers and program optimization
interprocedural optimization
0.011998
Scalable Cross-Module Optimization · PLDI 1998
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.011998
Scalable Cross-Module Optimization · PLDI 1998
Software maintenance and evolution
code clone
0.011997
Aggressive Inlining · PLDI 1997
Compilers and program optimization › interprocedural optimization
inlining
0.011997
Aggressive Inlining · PLDI 1997
Compilers and program optimization › interprocedural optimization
profile-guided inlining
0.011997
Aggressive Inlining · PLDI 1997
Software maintenance and evolution
build systems
0.011998
Scalable Cross-Module Optimization · PLDI 1998
Memory systems › cache › CPU cache
instruction cache
0.011997
Aggressive Inlining · PLDI 1997

Methods — techniques the papers use, named apart from their topics

control-flow instrumentation · 0.1binary program analysis · 0.1profile-guided optimization · 0.0profile data management · 0.0
YearPublicationVenuePosition
2005 TraceBack: first fault diagnosis by reconstruction of distributed control flow
abstract
Faults that occur in production systems are the most important faults to fix, but most production systems lack the debugging facilities present in development environments. TraceBack provides debugging information for production systems by providing execution history data about program problems (such as crashes, hangs, and exceptions). TraceBack supports features commonly found in production environments such as multiple threads, dynamically loaded modules, multiple source languages (e.g., Java applications running with JNI modules written in C++), and distributed execution across multiple computers. TraceBack supports first fault diagnosis-discovering what went wrong the first time a fault is encountered. The user can see how the program reached the fault state without having to re-run the computation; in effect enabling a limited form of a debugger in production code.TraceBack uses static, binary program analysis to inject low-overhead runtime instrumentation at control-flow block granularity. Post-facto reconstruction of the records written by the instrumentation code produces a source-statement trace for user diagnosis. The trace shows the dynamic instruction sequence leading up to the fault state, even when the program took exceptions or terminated abruptly (e.g., kill -9).We have implemented TraceBack on a variety of architectures and operating systems, and present examples from a variety of platforms. Performance overhead is variable, from 5% for Apache running SPECweb99, to 16%-25% for the Java SPECJbb benchmark, to 60% average for SPECint2000. We show examples of TraceBack's cross-language and cross-machine abilities, and report its use in diagnosing problems in production software.
Andrew Ayers, Richard Schooler, Chris Metcalf, Anant Agarwal, Junghwan Rhee, Emmett Witchel
PLDI1
1998 Scalable Cross-Module Optimization
abstract
Large applications are typically partitioned into separately compiled modules. Large performance gains in these applications are available by optimizing across module boundaries. One barrier to applying crossmodule optimization (CMO) to large applications is the potentially enormous amount of time and space consumed by the optimization process.We describe a framework for scalable CMO that provides large gains in performance on applications that contain millions of lines of code. Two major techniques are described. First, careful management of in-memory data structures results in sub-linear memory occupancy when compared to the number of lines of code being optimized. Second, profile data is used to focus optimization effort on the performance-critical portions of applications. We also present practical issues that arise in deploying this framework in a production environment. These issues include debuggability and compatibility with existing development tools, such as make. Our framework is deployed in Hewlett-Packard's (HP) UNIX compiler products and speeds up shipped independent software vendors' applications by as much as 71%.
Andrew Ayers, Stuart de Jong, John Peyton, Richard Schooler
PLDI1
1997 Aggressive Inlining
abstract
Existing research understates the benefits that can be obtained from inlining and cloning, especially when guided by profile information. Our implementation of inlining and cloning yields excellent results on average and very rarely lowers performance. We believe our good results can be explained by a number of factors: inlining at the intermediate-code level removes most technical restrictions on what can be inlined; the ability to inline across files and incorporate profile information enables us to choose better inline candidates; a high-quality back end can exploit the scheduling and register allocation opportunities presented by larger subroutines; an aggressive processor architecture benefits from more predictable branch behavior; and a large instruction cache mitigates the impact of code expansion. We describe the often dramatic impact of our inlining and cloning on performance: for example, the implementations of our inlining and cloning algorithms in the HP-UX 10.20 compilers boost SPECint95 performance on a PA8000-based workstation by a factor of 1.32.
Andrew Ayers, Robert Gottlieb, Richard Schooler
PLDI1