Feedback-directed specialization of C

Jeremy Brown · DSpace@MIT (Massachusetts Institute of Technology) · 1995

Abstraction is a powerful tool for managing program complexity. Well-abstracted source code is far more comprehensible, maintainable, and reusable than less abstract, specialized code. In addition, because a single general routine may be called from several places within a program, a well-abstracted program is usually smaller than a more specialized one. Unfortunately, with traditional compiler technology, executables produced from hand-specialized source code generally run faster than executables produced from abstract source code; as a result, programmers frequently sacrifice abstraction's long-term virtues to the short-term goal of execution-speed. In my M.Eng. thesis, I am studying automating specialization on the basis of profiling information gathered during actual program runs. In this approach, a given program is occasionally recompiled by a compiler...

Read the paper · More papers on PaperTik