VCODE
VCODE: A Retargetable, Extensible, Very Fast Dynamic Code Generation System. 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 known within the compiler community. However, due in large part to the lack of a publicly available dynamic code generation system, it has remained a curiosity rather than a widely used technique. A practical contribution of this work is the free, unrestricted distribution of the VCODE system, which currently runs on the MIPS, SPARC, and Alpha architectures.
This software is also peer reviewed by journal TOMS.
This software is also peer reviewed by journal TOMS.
Keywords for this software
References in zbMATH (referenced in 8 articles )
Showing results 1 to 8 of 8.
Sorted by year (- Choi, Wontae; Aktemur, Baris; Yi, Kwangkeun; Tatsuta, Makoto: Static analysis of multi-staged programs via unstaging translation (2011)
- Eckhardt, Jason; Kaiabachev, Roumen; Pasalic, Emir; Swadi, Kedar; Taha, Walid: Implicitly heterogeneous multi-stage programming (2007)
- Ertl, M. Anton; Gregg, David; Krall, Andreas; Paysan, Bernd: Vmgen - a generator of efficient virtual machine interpreters (2002)
- Masuhara, Hidehiko; Yonezawa, Akinori: A portable approach to dynamic optimization in run-time specialization (2002)
- Rauchwerger, Lawrence; Amato, Nancy M.; Torrellas, Josep: SmartApps: An application centric approach to high performance computing (2001)
- Stoyen, Alexander D.; Petrov, Plamen V.: Towards a mobile code management environment for complex, real-time, distributed systems (2001)
- Eigenmann, Rudolf; Voss, Michael J.: Towards a compilation paradigm for computational applications on the information power grid (2000)
- Wakeling, David: The dynamic compilation of lazy functional programs (1998)