1996
DOI: 10.1145/249069.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...
3
1
1

Citation Types

0
15
0

Year Published

1997
1997
2005
2005

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 29 publications
(15 citation statements)
references
References 22 publications
0
15
0
Order By: Relevance
“…Some contemporary run-time code generation systems are Fabius, Tempo, and DyC. Fabius performs run-time code generation for programs written in a functional subset of ML [9]. Tempo supports both compile-time partial evaluation and run-time specialization of C programs [4].…”
Section: Relatedmentioning
confidence: 99%
“…Some contemporary run-time code generation systems are Fabius, Tempo, and DyC. Fabius performs run-time code generation for programs written in a functional subset of ML [9]. Tempo supports both compile-time partial evaluation and run-time specialization of C programs [4].…”
Section: Relatedmentioning
confidence: 99%
“…Recently, they have extended their compiler, FABIUS, to accept a functional subset of ML [32]. They achieve low code generation costs using some of the techniques we independently derived for tee.…”
Section: Related Workmentioning
confidence: 99%
“…In such systems, the static compiler emits templates that at run time are filled with appropriate values, optimized in relatively simple but effective ways, and emitted directly. In practice, however, only Leone and Lee [32] appear to generate code more quickly than tee. Furthermore, improving performance in this way has a usability cost: no existing template-based system gives the programmer as much freedom and expressive power as 'C.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…ory behavior of each program run to produce optimizations tailored to that run. Specialization, or partial evaluation, is a related, more aggressive strategy by which hot portions of code are heavily optimized by "hard-coding" frequently occurring values, and other values that depend on them, directly into the instruction stream; when these values turn up again, the optimized code is invoked [2,8,13,14,17,21,22,26,28,31,35,36,43,44,45]. For certain classes of programs, such as interpreters, raytracers, and database query executors, in which a few popular values consistently dictate execution behavior, employing this technique can result in marked speedups, up to 5x in some cases [23].…”
Section: Introductionmentioning
confidence: 99%