An efficient optimizing compiler can perform many cascading rewrites in a single pass, using auxiliary data structures such as variable binding maps, delayed substitutions, and occurrence counts. Such optimizers often perform transformations according to relatively simple rewrite rules, but the subtle interactions between the data structures needed for efficiency make them tricky to write and trickier to prove correct. We present a system for semi-automatically deriving both an efficient program transformation and its correctness proof from a list of rewrite rules and specifications of the auxiliary data structures it requires. Dependent types ensure that the holes left behind by our system (for the user to fill in) are filled in correctly,...
AbstractAbstract programming supports the separation of logical concerns from issues of control in p...
An automated technique to translate conditional rewrite rules into unconditional ones is presented, ...
Abstract. Writing performance-critical programs can be frustrating be-cause optimizing compilers for...
An efficient optimizing compiler can perform many cascading rewrites in a single pass, using auxilia...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
Associated research group: Minnesota Extensible Language ToolsMany classical compiler optimizations ...
Many classical compiler optimizations can be elegantly ex-pressed using rewrite rules of form: I = ⇒...
We present an automated technique for generating compiler op-timizations from examples of concrete p...
AbstractA compiler optimization is sound if the optimized program that it produces is semantically e...
Rewrite systems are directed equations that can be used to compute by repeatedly rewriting an initia...
Article dans revue scientifique avec comité de lecture.First-order languages based on rewrite rules ...
Conditional rewrite rules are notorious for being difficult to implement in rewrite engines. This is...
AbstractPartial redundancy elimination is a subtle optimization which performs common subexpression ...
AbstractIn this paper, global compiler optimizations are captured by conditional rewrite rules of th...
AbstractAbstract programming supports the separation of logical concerns from issues of control in p...
An automated technique to translate conditional rewrite rules into unconditional ones is presented, ...
Abstract. Writing performance-critical programs can be frustrating be-cause optimizing compilers for...
An efficient optimizing compiler can perform many cascading rewrites in a single pass, using auxilia...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
Associated research group: Minnesota Extensible Language ToolsMany classical compiler optimizations ...
Many classical compiler optimizations can be elegantly ex-pressed using rewrite rules of form: I = ⇒...
We present an automated technique for generating compiler op-timizations from examples of concrete p...
AbstractA compiler optimization is sound if the optimized program that it produces is semantically e...
Rewrite systems are directed equations that can be used to compute by repeatedly rewriting an initia...
Article dans revue scientifique avec comité de lecture.First-order languages based on rewrite rules ...
Conditional rewrite rules are notorious for being difficult to implement in rewrite engines. This is...
AbstractPartial redundancy elimination is a subtle optimization which performs common subexpression ...
AbstractIn this paper, global compiler optimizations are captured by conditional rewrite rules of th...
AbstractAbstract programming supports the separation of logical concerns from issues of control in p...
An automated technique to translate conditional rewrite rules into unconditional ones is presented, ...
Abstract. Writing performance-critical programs can be frustrating be-cause optimizing compilers for...