Abstract:
Dynamic code generation is the creation of executable code at runtime. Such "on-the-fly" code generation is a powerful technique, enabling applications to use runtime information to improve performance by up to an order of magnitude [4, 8, 20, 22, 23]. Unfortunately, previous general-purpose dynamic code generation systems have been either inefficient or non-portable. We present VCODE, a retargetable, extensible, very fast dynamic code generation system. An important feature of VCODE is that it generates machine code "in-place" without the use of intermediate data structures. Eliminating the need to construct and consume an intermediate representation at runtime makes VCODE both efficient and extensible. VCODE dynamically generates code at an approximate cost of six to ten instructions per generated instruction, making it over an order of magnitude faster than the most efficient general-purpose code generation system in the literature [10]. Dynamic code generation is relatively well ...
Citations
|
672
|
Architectural considerations for a new generation of protocols
– Clark, Tennenhouse
- 1990
|
|
510
|
Exokernel: An operating system architecture for application-level resource management
– Engler, Kaashoek, et al.
- 1995
|
|
302
|
Shade: A fast instruction-set simulator for execution profiling
– Cmelik, Keppel
- 1994
|
|
202
|
Efficient implementation of the Smalltalk-80 system
– Deutsch, Schiffman
- 1984
|
|
202
|
The packet filter: An efficient mechanism for user-level network code
– MOGUL, RASHID, et al.
- 1987
|
|
185
|
Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language
– Chambers, Ungar
- 1989
|
|
184
|
A general approach for run-time specialization and its application to c
– Consel, Fran
- 1996
|
|
160
|
MINT: A Front End for Efficient Simulation of Shared-Memory
– Veenstra, Fowler
- 1994
|
|
145
|
Optimizing ML with run-time code generation
– Lee, Leone
- 1996
|
|
135
|
Optimizing dynamically-dispatched calls with run-time type feedback
– Holze, Ungar
- 1994
|
|
107
|
PATHFINDER: A pattern-based packet classifier
– BAILEY, GOPAL, et al.
- 1994
|
|
101
|
C: a language for high-level, efficient, and machine-independent dynamic code generation
– Engler, Hsieh, et al.
- 1996
|
|
101
|
E cient Packet Demultiplexing for Multiple Endpoints and Large Messages
– Yuhara, Bershad, et al.
- 1994
|
|
97
|
The Synthesis kernel
– Pu, Massalin, et al.
- 1988
|
|
81
|
Complete computer simulation: The SimOS approach
– Rosenblum, Herrod, et al.
- 1995
|
|
59
|
A case for runtime code generation
– Keppel, Eggers, et al.
- 1991
|
|
56
|
A retargetable compiler for ANSI
– Fraser, Hanson
- 1991
|
|
55
|
DCG: An Efficient, Retargetable Dynamic Code Generation System
– Engler, Proebsting
- 1994
|
|
53
|
Lightweight run-time code generation
– Leone, Lee
- 1994
|
|
41
|
The New Jersey Machine-Code Toolkit
– Ramsey, Fernandez
- 1995
|
|
39
|
Hardware/software trade-offs for bitmap graphics on the Blit
– Pike, Locanthi, et al.
- 1985
|
|
26
|
tcc: A templatebased compiler for `c
– Poletto, Engler, et al.
- 1996
|
|
18
|
A language for writing code generators
– Fraser
- 1989
|
|
8
|
application-specific message processing
– Efficient
- 1995
|