Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation 1996
DOI: 10.1145/231379.231407
|View full text |Cite
|
Sign up to set email alerts
|

Optimizing ML with run-time code generation

Abstract: We describe the design and implementation of a compiler that automatically translates ordinary programs written in a subset of ML into code that generates native code at run time. Run-time code generation canmake useof values and invariants that cannot be exploited at compile time, yielding code that is often superior to statically optimal code. But the cost of optimizing and generating code at run time can be prohibitive.Redemonstrate howcompile-time specialization can reduce the cost of run-time code generat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
27
0

Year Published

2001
2001
2012
2012

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 116 publications
(27 citation statements)
references
References 22 publications
0
27
0
Order By: Relevance
“…More generally, run-time code generation has been investigated e.g. in [14] and [7]. Some of the results presented in these papers is likely to be of interest to future low-level optimizations by Psyco, although all frameworks considered so far (VCODE [7], GNU Lightning 22 , LLVM [13]) focus on whole-function code generation and thus cannot be reused directly.…”
Section: Related Workmentioning
confidence: 99%
“…More generally, run-time code generation has been investigated e.g. in [14] and [7]. Some of the results presented in these papers is likely to be of interest to future low-level optimizations by Psyco, although all frameworks considered so far (VCODE [7], GNU Lightning 22 , LLVM [13]) focus on whole-function code generation and thus cannot be reused directly.…”
Section: Related Workmentioning
confidence: 99%
“…For instance, there are many examples (kernel implementation (Massalin, 1992), graphics (Pike et al, 1985), interactive media (Draves, 1998), method dispatch in object-oriented languages (Deutsch & Schiffman, 1984;Chambers & Ungar, 1989), etc.) where run-time code generation can be employed to reap significant gain in run-time performance (Leone & Lee, 1996). To illustrate this point, we define a function evalPoly as follows in Scheme for evaluating a polynomial p at a given point x.…”
Section: Introductionmentioning
confidence: 99%
“…For example, profile data can be used to measure how many times a procedure is called versus how many times it is created, and this ratio could be used to guide lambda lifting [12]. Combined with an estimate of the cost of generating code for the procedure, this ratio could also help determine when run-time code generation [22] would be profitable. Our system can also be extended to recompile (specialize) a closure based on the run-time values of its free variables.…”
Section: Discussionmentioning
confidence: 99%
“…Several recent research projects have focused on lightweight run-time code generation [8,15,22,20,25], with code generation costs on the order of five to 100 instructions executed for each instruction generated. Although the overhead inherent in our model is greater, the potential benefits are greater as well.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation