|Commercial use of run-time code generation? firstname.lastname@example.org (1996-12-15)|
|Re: Commercial use of run-time code generation? email@example.com (1996-12-20)|
|From:||firstname.lastname@example.org (Renaud Marlet)|
|Date:||20 Dec 1996 17:16:02 -0500|
|Organization:||IRISA, Campus de Beaulieu, 35042 Rennes Cedex, FRANCE|
> I've recently read a bit about partial evaluation and run-time code
> generation (Massalin's thesis; MIT exokernel, with the more portable
> VCODE and `C; DCG).
The Partial Evaluation Group at IRISA has developed a partial
evaluator for C, named Tempo, that includes both a compile-time
specializer and a fast run-time specializer based on code templates.
More information can be found from this URL :
> I am curious how well RTCG works
> with current architectures; Massalin's work was on earlier generations
> 680x0 machines, where cache consistency and pollution were not big
> concerns (the MIT work is more current.)
We run on sparcs, relying on gcc or lcc compilers (`C is also a
possible target). Templates are compiled and optimized before run
time. Run-time specialization does not require any interpretation and
solely consists of assembling binary templates, filling holes and
relocating jump targets. The simplicity of these operations
introduces negligible overhead at run time: specialization requires as
few as 3 runs to be amortized. As demonstrated by our experimental
results obtained on scientific and graphics code, run-time specialized
programs run nearly (80% on average) as fast as the same program
specialized and compiled at compile time: run-time specialization can
improve performance up to a factor of 10.
> Is RTCG used in many commercial products?
Tempo is still a prototype; it is not available on the net nor as a
commercial product. However, we plan to have a suite of
specialization examples available by the end of January, and a
specialization server before summer: you will be able to submit some
source file and receive the specialized code and/or run-time
Return to the
Search the comp.compilers archives again.