31 citations found. Retrieving documents...
Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI), pages 263--272. ACM Press, October 1994.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Dynamic Optimization through the use of Automatic Runtime.. - Whaley (1999)   (3 citations)  (Correct)

.... perform both compiletime and run time specialization based on programmer hints and simple program analysis [43, 114] C is an extension of ANSI C that allows the programmer to compose arbitrary fragments of dynamically generated code [118] C includes two dynamic compilers the first is DCG [66], which is relatively heavyweight, and the second is VCODE [65] which is much faster and more lightweight. DyC is a dynamiccompilation system that uses programmer annotations to specify the variables and code on which dynamic compilation should take place [74] It uses a binding time analysis to ....

Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 263--272, San Jose, California, October 4--7, 1994. ACM SIGARCH, SIGOPS, SIGPLAN, and the IEEE Computer Society.


Architecture Design and Compilation Techniques Using Partial.. - Masuhara (1999)   (Correct)

....cannot be applied without heuristics that reduces the number of combinations. 5.1.2 Dynamic Code Generation Using a dynamic code generation technique, the specialization process could be accelerated so that meta level objects can be dynamically specialized at run time. Dynamic code generation[21, 27, 28, 61, 62, 99, 115] is a technique to construct a specializer for each target program. The construct specializer receives an input for the target program, and directly generates specialized code in machine instructions. By preparing compiled machine instructions at the construction time of the specializer, the code ....

Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Architectural Support for Programming Languages and Operating Systems (ASPLOS'94), pp. 263--272, San Jose, CA, October 1994. ACM. (published as SIGPLAN Notices Vol.29, No.11).


Extensible Operating Systems - Maheshwari (1994)   (Correct)

....path explicit; i.e. the path across domains that the control most frequently follows. The compiler can segregate the critical path code to improve the locality of reference in the instruction cache. Also, parts of the critical path code can be generated dynamically for better performance [EP94] Although the concept of path based resource allocation and optimizations is tempting for applications doing bulk data transfers, I do not believe that it can replace the domainbased management for general purpose computing. In many applications computation dominates communication, so that ....

....interpreted by the kernel. The Mach packet filter speeds up the matching process by merging the common prefixes of the filter predicates. Aegis uses a declarative language that allows greater merging,and exploits dynamic code generation to remove a layer of interpretation in the matching process [EP94] code generation for filters was first proposed in [TNML93] Network protocol execution can be split between a server and library code to provide both efficiency and some degree of security [TNML93, MB93] Heavyweight and infrequent operations like connection startup happen through a trusted ....

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. Proceedings of ASPLOS-VI, pages 263--272, October 1994.


A General Approach for Run-Time Specialization and its.. - Consel, al. (1995)   (104 citations)  (Correct)

....is certainly attractive, considering the degree of improvement it can yield, the approaches explored so far have fundamental drawbacks. ffl They are manual. Usually templates are written by the programmer either directly in some low level language, or using some syntactic facilities [9]. ffl They are not clearly defined. Although existing approaches have shown their effectiveness, the process of run time specialization has always been presented as a black box; only the functionalities were described not the techniques. ffl They are not portable. When templates are written in ....

....; c) C a gen [ c a ] Then, oe 0 = C[ c] oe[x 7 c rhs ] oe 0 (x) oe 0 ) C a [ c a ] oe Where 8oe 2 Store; oe = oe[x 7 ] The proof is included in Appendix A. 5 Related Work Recently two approaches to run time code generation were reported by Engler and Proebsting [9], and by Leone and Lee [14] These approaches include some aspects of run time specialization and address issues related to compiling code at run time. Engler and Proebsting s approach consists of providing the programmer with operations to construct templates manually in the intermediate ....

D. R. Engler and T. A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In ACM Conference on Architectural Support for Programming Languages and Operating Systems, 1994.


Language and Compiler Support for Dynamic Code Generation - Poletto (1999)   (Correct)

....code. Given the low level of abstraction, these are all inherently difficult to use. The Synthesis kernel [62] for example, used manually generated dynamic code to improve scheduling and I O performance, but required a heroic programming effort. More recently, Engler developed two libraries, DCG [25] and VCODE [22] that make manual dynamic code generation simpler and more portable. DCG allows the user to specify dynamic code as expression trees. VCODE provides a clean RISC like interface for specifying instructions, but leaves register allocation and most instruction scheduling to the ....

D. R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, pages 263--272, San Jose, CA, October 1994. ACM.


Run-time Code Generation and Modal-ML - Wickline, Lee, Pfenning (1998)   (20 citations)  (Correct)

....with a simple example, consider the following ML function which evaluates a given polynomial for a given base. For this function, the polynomial a 0 a 1 x a 2 x 2 Delta Delta Delta anx n is represented as the list [a 0 ; a 1 ; a 2 ; an ] type poly = int list; val poly1 = [2,4,0,2333]; val evalPoly : int poly int ) fun evalPoly (x, nil) 0 evalPoly (x, a: p) a (x evalPoly (x, p) If this function were called many times with the same polynomial but different bases, it might be profitable to specialize it to the particular polynomial, in effect synthesizing ....

....by compiling selected functions in its input to generating extensions. Using values obtained in earlier computations, these generating extensions create code specialized to perform later computations. While several different schemes for run time code generation have been used in other systems [4, 3, 13, 12, 1] Fabius is able to achieve a remarkably low instructionexecuted to instruction specialized ratio by a unique combination of features. ffl Generating extensions produced by Fabius never manipulate source level terms at run time. Instead machine language programs are synthesized directly from ....

Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI ), pages 263--272. ACM Press, October 1994.


A Uniform Approach for Compile-time and Run-time.. - Consel, Hornof.. (1996)   (37 citations)  (Correct)

....12 Charles Consel, Luke Hornof, Fran cois Noel, Jacques Noy e, Nicolae Volanschi Recently other forms of run time specialization have been explored. Engler and Proebsting s approach involves having the programmer manually construct templates which are then compiled into binary code at run time [16]. Leone and Lee s method involves postponing certain compilation operations until run time in order to better optimize programs [24] These approaches are error prone due to the need for user intervention, lose efficiency due to the lack of global perspective, and have not been formalized. We have ....

D. R. Engler and T. A. Proebsting. DCG: an efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI), ACM Press, November 1994.


Fast, Effective Dynamic Compilation - Auslander, Philipose, Chambers.. (1996)   (8 citations)  (Correct)

....machine code from within a program, in a portable fashion. They also developed a template based approach. Their experiments demonstrated that these techniques outperformed the best statically compiled, hand tuned code in several applications. In a similar vein, Engler and Proebsting developed DCG [EP94] a library for constructing and manipulating expression trees that exploits the IBURG portable code generator library [Pro92] The code generator infrastructure performed no optimizations other than instruction selection. Engler, Hsieh, and Kaashoek developed C [EHK96] an extension of the C ....

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In International Conference on Architectural Support for Programming Languages and Operating Systems, October 1994.


Two for the Price of One: Composing Partial Evaluation and.. - Sperber, Thiemann (1997)   (10 citations)  (Correct)

....term run time code generation to a variety of different situations. There is no clear cut border between ordinary compilation and RTCG. On the ordinary end of the spectrum, compilation is offline as in traditional compilers. On the other end of the spectrum, there are online systems like DCG [18] or the Synthesis kernel [42] that compile code for immediate execution. The rest of the spectrum is not empty: programming languages like ML, Scheme, or Smalltalk have a read eval print loop that accepts function definitions that are compiled and the code is immediately available for execution. ....

Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI), pages 263--272. ACM Press, 1994.


Optimizing ML with Run-Time Code Generation - Lee   (119 citations)  (Correct)

....part of the programmer. A standard approach is to provide programming support for constructing representations of programs at run time, and for invoking an optimizing compiler to transform such representations into native code. This approach is relatively easy to implement, and systems such as DCG [17] based on this approach have been shown to be useful in interesting applications. Using DCG, a C programmer can write a program that constructs intermediate code trees and then invokes a compiler back end to translate them into optimized native code that can be dynamically linked and executed. ....

....generation at run time can be high, to the point that the improvements gained by delaying compilation to run time are eliminated by the cost of run time compilation. For example, DCG s reported overhead of generating an instruction at run time is about 350 instructions per instruction generated [17]. 2.2 Templates It is possible to reduce the cost of run time code generation by pre compiling (as much as possible) the code that will be generated at run time. Previous work has focused on the use of templates, which are sequences of machine instructions containing holes in place of some ....

[Article contains additional citation context not shown here]

Engler, D. R., and Proebsting, T. A. DCG: An efficient, retargetable dynamic code generation system. In Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI) (October 1994), ACM Press, pp. 263--272.


Compiler Generation for Interactive Graphics using Intermediate.. - Draves (1996)   (5 citations)  (Correct)

....requires time and planning that are unavailable to exploratory and evolutionary programmers. Run time code generation (RTCG) as exemplified by Common LISP [51] Pike s Blit terminal [43] Masselin s Synthesis operating system [36] researchers at the University of Washington [32] and elsewhere [14][35] is one way to attack this problem. With these systems, one writes programs that create programs. Generating rare cases and fused, one pass loops as needed directly addresses the program size and latency traceoffs outlined above. However, RTCG has suffered from a lack of portable, easy to use ....

....set of prims. It supports partially static structs, simple manual lifts, and is monovariant. It produces small programs and runs fairly quickly. It s file based interface could be combined with a Scheme compiler (provided it had the right interface) to do RTCG. Schism [7] is similar but nicer. DCG [14] and [33] provide C callable libraries for RTCG. They use typical C compiler intermediate language for portable construction and fast compilation with rudimentary optimization . The ratio of static instructions used per dynamic instruction produced is 300 to 1000. C [15] augments C with ....

Dawson Englar, Todd Proebsting. DCG: An Efficient, Retargetable Dynamic Code Generation System. ASPLOS, 1994.


Just-In-Time Compilers and Dynamic Code Generation - Teodosiu (1997)   (Correct)

....did not mention that many JIT compilers hide some of the compilation latency by compiling while the code is still downloading. In many cases, the network connection is slower than the compiler. 4. The C language and the tcc compiler C extends some of the ideas described in the context of DCG [6] and VCODE [3] C is an extension of ANSI C that supports dynamic code generation at run time. The code to be generated is specified by so called tick expressions, which are stored in cspecs. cspecs can be combined at run time to produce larger run time code specifications. A cspec can be ....

D. R. Engler, T. A. Proebsting. DCG: An Efficient, Retargetable Dynamic Code Generation System. ASPLOS 1994.


A Declarative Approach to Run-Time Code Generation - Mark Leone (1996)   (18 citations)  (Correct)

....by invalidating or updating code when the values or invariants used to optimize it change. Each of these duties is laborious and error prone. Various ad hoc techniques have been suggested to ameliorate this situation. For example, libraries for dynamically compiling and linking code now exist [7], and various notations and primitives have been suggested to simplify specifying and combining code fragments [5] However, we believe that an imperative approach to run time code generation is clumsy and inherently unsafe. We advocate a declarative approach to run time code generation: the ....

....C with a LISP like backquote operator that simplifies the construction of code fragments to be compiled at run time [5] The programmer writes code that manually combines code fragments and applies certain optimizations, such as loop unrolling. An early compiler for this language was based on DCG [7], a dynamic compiler derived from the back end of the lcc compiler. Because DCG processes a general purpose intermediate representation at run time, it imposes a significant overhead: approximately 350 instructions are executed per instruction generated at run time. A more recent implementation ....

Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI), pages 263--272. ACM Press, October 1994.


Network Systems Research Group: An Annotated Bibliography - Peterson (1994)   (Correct)

....and efficient Scout code, and a set of low level optimizations. A white paper that gives an overview of Scout can be found in [Mont94] In addition, two software tool being designed for Scout, the Universal Stub Compiler (USC) and the Dynamic Code Generator (DCG) are described in [O Ma94] and [Engl94], respectively. Finally, Mosb94] describes Scout s approach to lock free synchronization. 3 Protocol Design The second major thrust of our research is protocol design. Quite often (but not always) using the x kernel as an implementation platform, we investigate the algorithms used by various ....

Engler, D. R. and Proebsting, T. A. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems, October 1994.


`C: A Language for High-Level, Efficient, and.. - Engler, Hsieh, Kaashoek (1996)   (4 citations)  Self-citation (Engler)   (Correct)

....to feed optimizations such as strength reduction, dead code elimination, and constant folding. As another example, interpreters can compile frequently used code and execute it directly [2] this technique can improve performance by an order of magnitude, compared to even heavily tuned interpreters [5]. Unfortunately, current dynamic code generation systems are not satisfactory. Programmers must choose among portability, ease of programming (including debugging) and efficiency: efficiency can be had, but only by sacrificing portability, ease of programming or, in the case of the fastest ....

.... code generation technology to improve performance by compiling and then directly executing frequently interpreted pieces of code [2, 4] To show that C can be used to do this easily and efficiently we present a recursive descent compiling interpreter that accepts a subset of C that we call Tiny C [5]. Tiny C has only an integer type; it supports most of C s relational and arithmetic operations ( etc. and provides if statements, while loops, and function calls as control constructs. A subset of the parser is shown in Figure 2. What should be noted is the degree to which the ....

[Article contains additional citation context not shown here]

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. Proceedings of ASPLOS-VI, pages 263--272, October 1994.


The Operating System Kernel as a Secure Programmable.. - Engler, Kaashoek.. (1994)   (32 citations)  Self-citation (Engler)   (Correct)

....then page granularity protections may not suffice. Using a type safe language and a trusted compiler might enable closer integration of application and kernel code, while simultaneously increasing portability. An example of this is our packet filter engine, which uses dynamic code generation [12] to directly compile packet filter predicates specified in a declarative, type safe language. We expect each of these techniques to be useful for some kinds of exokernel extensions, depending on the tradeoffs involved. 4 Related Work Many early operating systems papers discussed the need for ....

....resources rather than emulating them, allowing an efficient and fast implementation. Synthesis is an innovative operating system that has inspired some of our work [22] for example, the use of runtime code generation. The Aegis system, however, uses a portable runtime code generation system [12], while the synthesis kernel is written in assembly, and uses ad hoc runtime code generation macros to specialize system calls. Furthermore, the Aegis system will use runtime code generation to efficiently execute application kernel extensions. Concurrently with our work the SPIN [5] and Cache ....

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamiccode generation system. Proceedings of ASPLOS-VI, pages 263--272, October 1994.


VCODE: A Retargetable, Extensible, Very Fast Dynamic Code.. - Engler (1996)   (9 citations)  Self-citation (Engler)   (Correct)

....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, ....

....using VCODE. Finally, we conclude in Section 7. 2 Related Work Dynamic code generation has a long history. It has been used to increase the performance of operating systems [20] windowing operations [18] dynamically typed languages [2, 13, 6] simulators [23] and matrix manipulations [10]. In [14] Keppel, Eggers and Henry survey many advantageous uses for dynamic code generation. ParcPlace sells an implementation of Smalltalk 80 that uses a dynamic code generator for SPARC, Motorola 68k, PowerPC, Intel x86, and other architectures. Unlike VCODE, their system is designed ....

[Article contains additional citation context not shown here]

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. Proceedings of ASPLOS-VI, pages 263--272, October 1994.


tcc: A System for Fast, Flexible, and High-level Dynamic .. - Poletto, Engler.. (1997)   (8 citations)  Self-citation (Engler)   (Correct)

....Research Projects Agency under contracts N00014 94 1 0985 and N66001 96 C 8522, and by a NSF National Young Investigator Award. flexibility [1, 11, 32] On the other, library based approaches allow flexible specification of code, but require programmers to work with a low level representation [14, 19]. This code specification flexibility is necessary to efficiently implement some of the most profitable applications of dynamic code generation, such as just in time compilers [17] and efficient simulators [10, 48, 46] which require the composition of arbitrary statements and expressions and ....

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. Proceedings of ASPLOS-VI, pages 263--272, October 1994.


`C: A Language for High-Level, Efficient, and.. - Engler, Hsieh, Kaashoek (1996)   (4 citations)  Self-citation (Engler)   (Correct)

....the size of the unmarshaled element to the current offset. Finally, the call to the vspec function pointer with the constructed argument list is specified, and the result is compiled. 5 Performance We have implemented a prototype C compiler that emits ANSI C code augmented with calls to DCG s [13] dynamic code generation primitives. The compiler parses, semantically checks, and generates code for C. It generates code correctly for most of the examples in this paper. Our prototype demonstrates that despite our lack of optimization and DCG s rudimentary optimization (it does not perform ....

....time, we will emit code very quickly. We expect the use of templates and VCODE to improve the speed of dynamic code generation by an order of magnitude. The rest of this section presents performance results using the prototype compiler for two C programs that are based on the examples used in [13]. The experiments were conducted on a SPARC 10 system that does integer divide and multiply in software. Times were measured using the Unix system call getrusage and include both user and system time. The times given are the median time of three trials. Static compilation was done using gcc ....

[Article contains additional citation context not shown here]

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. Sixth International Conference on Architecture Support for Programming Languages and Operating Systems, pages 263--272, October 1994.


Liquid Software: A New Paradigm for Networked Systems - Hartman, Manber.. (1996)   (48 citations)  Self-citation (Proebsting)   (Correct)

....modifications to the Java bytecode distribution format to decrease the overhead of processing the bytecodes. 2. 1 Retargetable Compiler Issues If the host receives machine independent liquid software, but must execute at native speeds, the mobile code must be translated dynamically to native code [EP94] The problem of dynamic translation of Java bytecode to native code is complicated by the need to have a (necessarily machine dependent) translator for every host architecture. Quickly generating machine code requires three fast compiler components: fast instruction selection, fast instruction ....

....generates specialized routines for a functional language, Fabius [LL94] Their system does not expose any details of the code generation to the user, and operates relatively efficiently. Engler and Proebsting took a more nuts and bolts approach to dynamic code generation with their DCG system [EP94] At run time users specify code to be emitted in a machine independent tree format which is subsequently translated by DCG to binary code for immediate execution. The translation is efficient, executing about 300 instructions for every instruction generated. The DCG system is constructed by ....

Dawson R. Engler and Todd A. Proebsting. DCG:An efficient, retargetable dynamic code generation system. In International Conference on Architectural Support for Programming Languages and Operating Systems, pages 263--273, October 1994.


tcc: A Template-Based Compiler for `C - Poletto, Engler, Kaashoek (1995)   (19 citations)  Self-citation (Engler)   (Correct)

....unavailable at compile time. It has been widely applied by the language and systems communities to improve the performance of everything from operating systems [1, 7, 18, 19] to windowing operations [17] dynamically typed languages [2, 4, 13] simulators [21, 25, 23] and matrix manipulations [8]. C [5] is a superset of ANSI C that makes dynamic code generation both practical and efficient. Practicality stems from the ability to specify code in a high level, machine independent fashion, building on the facilities already available in C. Using C, it is possible to synthesize arbitrary ....

....to its client an interface similar to that of an idealized RISC architecture. VCODE emits code in place, consuming little space and requiring as few as 30 instructions per generated instruction. This is a significant improvement over many previous dynamic code generation systems, such as DCG [8] (used to implement an experimental version of C) which manipulate relatively complex data structures at run time. By using VCODE s template based approach, we expect the performance of dynamic code generation to improve significantly. The rest of the paper is structured as follows: Section 2 ....

[Article contains additional citation context not shown here]

D.R. Engler and T.A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In 6th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 263--272, San Jose, CA, October 1994.


Optimizing ML with Run-Time Code Generation - Detex Paper Wc   (Correct)

No context found.

Dawson R. Engler and Todd A. Proebsting. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI), pages 263--272. ACM Press, October 1994.


Jello: a retargetable Just-In-Time compiler for LLVM bytecode - Lattner, Brukman, Gaeke (2002)   (Correct)

No context found.

D. R. Engler and T. A. Proebsting. DCG: an e#cient, retargetable dynamic code generation system. In Proceedings of the sixth international conference on Architectural support for programming languages and operating systems, pages 263--272. ACM Press, 1994.


Run-Time Program Specialization in Java Bytecode - Masuhara, Yonezawa (1999)   (Correct)

No context found.

D. R. Engler and T. A. Proebsting. DCG: An e#cient, retargetable dynamic code generation system. In ASPLOS'94 , volume 29(11) of ACM SIGPLAN Notices, pages 263--272, Oct. 1994.


MetaBETA - Model and Implementation - Schmidt   (Correct)

No context found.

D. R. Engler and T. A. Proebsting. DCG: An E#cient, Retargetable Dynamic Code Generation System. In The 6th International Conference on Architectural Support for Programming Language and Operating Systems (ASPLOS), October 1994.

First 50 documents

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC