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

Berkeley R. Churchill

dblp:02/9961 · DBLP profile ↗
← Back
6ranked-venue papers
3as first author
0since 2021 · last 2019
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 2 first-authorSystems, architecture and hardware · 1 · 1 first-authorTheory of computation · 1 · 1 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
4 papers
Program verification · 49% Compilers and program optimization · 29% Program analysis · 22%

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

TopicWeightPapersLastEvidence papers
Program verification
equivalence checking
0.832019
Semantic program alignment for equivalence checking · PLDI 2019
Conditionally correct superoptimization · OOPSLA 2015
Data-driven equivalence checking · OOPSLA 2013
Compilers and program optimization › compiler optimization
superoptimization
0.522017
Sound Loop Superoptimization for Google Native Client · ASPLOS 2017
Conditionally correct superoptimization · OOPSLA 2015
Program analysis › dynamic analysis › trace analysis
trace alignment
0.412019
Semantic program alignment for equivalence checking · PLDI 2019
Program verification
bounded verification
0.112017
Sound Loop Superoptimization for Google Native Client · ASPLOS 2017

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

product program construction · 0.4superoptimization · 0.3simulated annealing · 0.3formal verification · 0.3testing · 0.2decision procedures · 0.2abstract interpretation · 0.2simulation relation inference · 0.2SMT solver · 0.2
YearPublicationVenuePosition
2019 Semantic program alignment for equivalence checking
abstract
We introduce a robust semantics-driven technique for program equivalence checking. Given two functions we find a trace alignment over a set of concrete executions of both programs and construct a product program particularly amenable to checking equivalence.
Berkeley R. Churchill, Oded Padon, Rahul Sharma 0001, Alex Aiken
PLDI1
2017 Sound Loop Superoptimization for Google Native Client
abstract
Software fault isolation (SFI) is an important technique for the construction of secure operating systems, web browsers, and other extensible software. We demonstrate that superoptimization can dramatically improve the performance of Google Native Client, a SFI system that ships inside the Google Chrome Browser. Key to our results are new techniques for superoptimization of loops: we propose a new architecture for superoptimization tools that incorporates both a fully sound verification technique to ensure correctness and a bounded verification technique to guide the search to optimized code. In our evaluation we optimize 13 libc string functions, formally verify the correctness of the optimizations and report a median and average speedup of 25% over the libraries shipped by Google.
Berkeley R. Churchill, Rahul Sharma 0001, J. F. Bastien, Alex Aiken
ASPLOS1
2015 Conditionally correct superoptimization
abstract
The aggressive optimization of heavily used kernels is an important problem in high-performance computing. However, both general purpose compilers and highly specialized tools such as superoptimizers often do not have sufficient static knowledge of restrictions on program inputs that could be exploited to produce the very best code. For many applications, the best possible code is conditionally correct: the optimized kernel is equal to the code that it replaces only under certain preconditions on the kernel's inputs. The main technical challenge in producing conditionally correct optimizations is in obtaining non-trivial and useful conditions and proving conditional equivalence formally in the presence of loops. We combine abstract interpretation, decision procedures, and testing to yield a verification strategy that can address both of these problems. This approach yields a superoptimizer for x86 that in our experiments produces binaries that are often multiple times faster than those produced by production compilers.
Rahul Sharma 0001, Eric Schkufza, Berkeley R. Churchill, Alex Aiken
OOPSLA3
2014 Widening for Control-Flow
Ben Hardekopf, Ben Wiedermann, Berkeley R. Churchill, Vineeth Kashyap
VMCAI3
2013 Data-driven equivalence checking
abstract
We present a data driven algorithm for equivalence checking of two loops. The algorithm infers simulation relations using data from test runs. Once a candidate simulation relation has been obtained, off-the-shelf SMT solvers are used to check whether the simulation relation actually holds. The algorithm is sound: insufficient data will cause the proof to fail. We demonstrate a prototype implementation, called DDEC, of our algorithm, which is the first sound equivalence checker for loops written in x86 assembly.
Rahul Sharma 0001, Eric Schkufza, Berkeley R. Churchill, Alex Aiken
OOPSLA3
2011 Summing Symbols in Mutual Recurrences
Berkeley R. Churchill, Edmund A. Lamagna
COCOON1