Results 1 -
2 of
2
Fast and Effective Procedure Inlining
- IN 4TH INTERNATIONAL SYMPOSIUM ON STATIC ANALYSIS
, 1997
"... Inlining is an important optimization for programs that use procedural abstraction. Because inlining trades code size for execution speed, the effectiveness of an inlining algorithm is determined not only by its ability to recognize inlining opportunities but also by its discretion in exercising tho ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
Inlining is an important optimization for programs that use procedural abstraction. Because inlining trades code size for execution speed, the effectiveness of an inlining algorithm is determined not only by its ability to recognize inlining opportunities but also by its discretion in exercising those opportunities. This paper presents a new inlining algorithm for higher-order languages that combines simple analysis techniques with demand-driven online transformation to achieve consistent and often dramatic performance gains in fast linear time. Benchmark results reported here demonstrate that this inlining algorithm is as effective as and significantly faster than offline, analysis-intensive algorithms recently described in the literature.
Making the Compilation “Pipeline ” Explicit: Dynamic Compilation Using Trace Tree Serialization
"... Abstract. Trace-based compilers operate by dynamically discovering loop headers and then recording and compiling all paths through a loop that are executed with sufficient frequency. The different paths through each loop form a tree, with the loop header at the root, in which common code is shared u ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Trace-based compilers operate by dynamically discovering loop headers and then recording and compiling all paths through a loop that are executed with sufficient frequency. The different paths through each loop form a tree, with the loop header at the root, in which common code is shared up-stream. Such trace-trees can be serialized in a specific manner that allows us to organize the compiler pipeline as a series of filters. We have implemented such a compiler pipeline that has completely linear runtime behavior. Further, it has only two write barriers, meaning that substantial parts of the compilation effort could potentially be parallelized on future multi-core platforms. 1

