Branding/Logomark minus arrow-point-to-down Citation Combined Shape Icon/Bookmark-empty Icon/Copy Icon/Collection Icon/Close Copy 7 Icon/List no author result Created with Sketch.
Loading Scinapse...
John Regehr
University of Utah
89Publications
30H-index
2,318Citations
Publications 89
Newest
Nuno P. Lopes12
Estimated H-index: 12
(Microsoft),
David Menendez3
Estimated H-index: 3
(Rutgers University)
+ 1 AuthorsJohn Regehr30
Estimated H-index: 30
(University of Utah)
Compilers should not miscompile. Peephole optimizations, which perform local rewriting of the input program to improve the efficiency of generated code, are a persistent source of compiler bugs. We created Alive, a domain-specific language for writing optimizations and for automatically either proving them correct or else generating counterexamples. Furthermore, Alive can be automatically translated into C++ code that is suitable for inclusion in an LLVM optimization pass. Alive is based on an a...
2 Citations Source Cite
Nuno P. Lopes12
Estimated H-index: 12
,
John Regehr30
Estimated H-index: 30
As software becomes larger, programming languages become higher-level, and processors continue to fail to be clocked faster, we'll increasingly require compilers to reduce code bloat, eliminate abstraction penalties, and exploit interesting instruction sets. At the same time, compiler execution time must not increase too much and also compilers should never produce the wrong output. This paper examines the problem of making optimizing compilers faster, less buggy, and more capable of generating ...
Download PDF
2018
June-Young Lee7
Estimated H-index: 7
(Seoul National University),
Chung-Kil Hur15
Estimated H-index: 15
(Seoul National University)
+ 3 AuthorsNuno P. Lopes12
Estimated H-index: 12
(Microsoft)
Source Cite
2018 in Conference on Object-Oriented Programming Systems, Languages, and Applications
June-Young Lee7
Estimated H-index: 7
(Seoul National University),
Chung-Kil Hur15
Estimated H-index: 15
(Seoul National University)
+ 3 AuthorsNuno P. Lopes12
Estimated H-index: 12
(Microsoft)
Source
2017 in Programming Language Design and Implementation
June-Young Lee7
Estimated H-index: 7
(Seoul National University),
Yoonseung Kim2
Estimated H-index: 2
(Seoul National University)
+ 5 AuthorsNuno P. Lopes12
Estimated H-index: 12
(Microsoft)
A central concern for an optimizing compiler is the design of its intermediate representation (IR) for code. The IR should make it easy to perform transformations, and should also afford efficient and precise static analysis. In this paper we study an aspect of IR design that has received little attention: the role of undefined behavior. The IR for every optimizing compiler we have looked at, including GCC, LLVM, Intel's, and Microsoft's, supports one or more forms of undefined behavior (UB), no...
10 Citations Download PDF Cite
2017
John Regehr30
Estimated H-index: 30
(University of Utah),
Peter Bailis13
Estimated H-index: 13
(Stanford University)
Source Cite
John Regehr30
Estimated H-index: 30
(University of Utah),
Peter Bailis13
Estimated H-index: 13
(Stanford University)
Source Cite
Raimondas Sasnauskas2
Estimated H-index: 2
,
Yang Chen7
Estimated H-index: 7
+ 3 AuthorsJohn Regehr30
Estimated H-index: 30
If we can automatically derive compiler optimizations, we might be able to sidestep some of the substantial engineering challenges involved in creating and maintaining a high-quality compiler. We developed Souper, a synthesizing superoptimizer, to see how far these ideas might be pushed in the context of LLVM. Along the way, we discovered that Souper's intermediate representation was sufficiently similar to the one in Microsoft Visual C++ that we applied Souper to that compiler as well. Shipping...
2 Citations Download PDF
2016 in Virtual Execution Environments
Anton Burtsev4
Estimated H-index: 4
(University of Utah),
David Johnson7
Estimated H-index: 7
(University of Utah)
+ 2 AuthorsJohn Regehr30
Estimated H-index: 30
(University of Utah)
Efficient deterministic replay of whole operating systems is feasible and useful, so why isn't replay a default part of the software stack? While implementing deterministic replay is hard, we argue that the main reason is the lack of general abstractions for understanding and addressing the significant engineering challenges involved in the development of a replay engine for a modern VMM. We present a design blueprint---a set of abstractions, general principles, and low-level implementation deta...
8 Citations Download PDF Cite
Alex Groce26
Estimated H-index: 26
(Oregon State University),
Mohammad Amin Alipour7
Estimated H-index: 7
(Oregon State University)
+ 2 AuthorsJohn Regehr30
Estimated H-index: 30
(University of Utah)
What is a test case for? Sometimes, to expose a fault. Tests can also exercise code, use memory or time, or produce desired output. Given a desired effect, a test case can be seen as a cause, and its components divided into essential required for effect and accidental. Delta debugging is used for removing accidents from failing test cases, producing smaller test cases that are easier to understand. This paper extends delta debugging by simplifying test cases with respect to arbitrary effects, a ...
17 Citations Download PDF Cite
123456789