Affiliation:
1. Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
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 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
18 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Compilation of Modular and General Sparse Workspaces;Proceedings of the ACM on Programming Languages;2024-06-20
2. Compile-Time Analysis of Compiler Frameworks for Query Compilation;2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO);2024-03-02
3. Fast Template-Based Code Generation for MLIR;Proceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction;2024-02-17
4. Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode;Proceedings of the ACM on Programming Languages;2021-10-20
5. Synthesizing JIT Compilers for In-Kernel DSLs;Computer Aided Verification;2020