ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Loop skewing: the wavefront method revisited
International Journal of Parallel Programming
Continuation-passing, closure-passing style
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-based compiler for standard ML
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Catching bugs in the web of program invariants
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Advanced compiler design and implementation
Advanced compiler design and implementation
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
Compiling Haskell by Program Transformation: A Report from the Trenches
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Inline Expansion: When and How?
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
CC '00 Proceedings of the 9th International Conference on Compiler Construction
A Comprehensive Approach to Array Bounds Check Elimination for Java
CC '02 Proceedings of the 11th International Conference on Compiler Construction
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
DrScheme: a programming environment for Scheme
Journal of Functional Programming
A pseudo-random number generator for the System/360
IBM Systems Journal
Science of Computer Programming
High Performance JavaScript
Performance analysis of idle programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Kremlin: rethinking and rebooting gprof for the multicore age
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Catch me if you can: performance bug detection in the wild
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Understanding and detecting real-world performance bugs
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Fast and precise hybrid type inference for JavaScript
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Hi-index | 0.00 |
Optimizing compilers map programs in high-level languages to high-performance target language code. To most programmers, such a compiler constitutes an impenetrable black box whose inner workings are beyond their understanding. Since programmers often must understand the workings of their compilers to achieve their desired performance goals, they typically resort to various forms of reverse engineering, such as examining compiled code or intermediate forms. Instead, optimizing compilers should engage programmers in a dialog. This paper introduces one such possible form of dialog: optimization coaching. An optimization coach watches while a program is compiled, analyzes the results, generates suggestions for enabling further compiler optimization in the source program, and presents a suitable synthesis of its results to the programmer. We present an evaluation based on case studies, which illustrate how an optimization coach can help programmers achieve optimizations resulting in substantial performance improvements.