| Engler, D. R., Hsieh, W. C., and Kaashoek, M. F. 1996. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of the 23rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'96) (Jan. 1996), pp. 131--144. |
....comparisons. The assumption is made that Val1 is less than Val2, so CTADEL does not have to cover all edges of the call graph. 4. 2 Templates in Ctadel The use of templates is a well known concept to maintain a certain level of abstraction while keeping full control of essential details, e.g. [7, 6]. Templates are used in several high level programming languages like C [1] however these languages restrict the use of templates to the front end of the compiler. By moving the usage of templates to the back end of the compiler, we can implement (near) optimal numerical solutions methods for ....
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `c: A language for high-level, efficient, and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, pages 131--144, 1996.
....DAS computer, horizontal axis gives the number of nodes while the vertical axis gives the relative speedup. 5 Templates The use of templates, introduced by van Engelen [23] is a well known concept to maintain a certain level of abstraction while keeping full control of essential details, e.g. [5, 6]. Templates are used in several high level programming languages like C [1] however these languages restrict the use of templates to the front end of the compiler. By moving the usage of templates to the back end of the compiler, we can implement (near) optimal numerical solutions methods for ....
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `c: A language for high-level, efficient, and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, pages 131--144, 1996.
....outweigh the costs of performing them at run time. All run time specialization systems to date have put this choice in the hand of their users, either by requiring the programmer to explicitly compose code templates that are used to produce specialized code at run time (e.g. the C system [EHK96] or by requiring the programmer to put annotations in the program source code that are used by a subsequent analysis pass to determine where to specialize code, and which particular transformation to apply at run time [LL96, GMP 97, CHM 98] An example illustrating the potential benefits ....
....Several systems have been designed that attempt to achieve program speedups by code specialization for specific run time values of variables or data structures. These systems require the programmer either to explicitly specify how and what code should be generated at run time (e.g. C [EHK96] or to control the run time specialization by source code annotations (Tempo [CN96, CHM 98] DyC [GMP 00b] and Fabius [LL96] Common to all run time specialization systems is that they achieve their speedups by replacing a generic version of a procedure (or subsection thereof, in case ....
[Article contains additional citation context not shown here]
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Conference Record of POPL '96: 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 131--144, St. Petersburg, FL, USA, January 1996.
....compiler is necessary. We will address this as part of future work. 8. RELATED WORK In all the previous sections, we have attempted to relate our work with existing specialization techniques. In this section, we present a short summary of related work. Program specialization (in various forms) [1,8,9,12,13,18,20,24,27,28] is a well studied program optimization technique. In its classic form, it has been a compile time source to source optimization technique. Tempo [8] and DyC [13] perform staged specialization and use code templates to generate specialized code using the values available at runtime. However, they ....
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `c: A language for high-level, efficient,and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, pages 131--144, 1996.
....into primitive terms as a rewrite rule, but it also de nes a number of attributes whose values are speci c to the original higher level construct. This also sets attribute grammars with forwarding apart from language processors that are mainly based on re ection, such as MetaML [26] or C [9]. Forwarding is very close to higher order attribute grammars. As we shall see shortly, the only substantial di erence is that here the copy rules for all relevant attributes are automatically generated. There are a number of minor di erences, in particular that forwarding is commonly used in ....
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `c: A language for high-level, ecient, and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, pages 131-144, 1996.
....dynamic as soon as it is dynamic in any part of the program, including exception handling. C Mix also consumes more code space, because it eagerly replicates code to avoid problems in binding time analysis. In contrast to Tempo and C Mix, which operate on ANSI C programs, DyC [23] and C [15] are C based languages that incorporate annotations to assist binding time analysis to enable partial evaluation. DyC caches compiled code to improve the performance of dynamic specialization. Other staged programming research projects use functional programming languages, such as ML. The MetaML ....
Engler, D.R., W.C. Hsieh, and M.F. Kaashoek. C: A Language for High-Level, Efficient, and MachineIndependent Dynamic Code Generation. in 23rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'96). 1996. St. Petersburgh Beach, FL.
....while the program is running. Voss and Eigenmann describe ADAPT [29] a system which can dynamically generate and select program variants. A related research area is dynamic compilation and program specialization, from its most abstract beginnings by Ershov [8] to more recent work, such as [7, 5, 18, 14]. System scoping: McCalpin s STREAM benchmark discovers the machine balance of an architecture via experimentation [20] In addition to bandwidth, McVoy s and Staelin s lmbench determines a set of system characteristics, such as process creation costs, and context switching overhead [21] ....
D. R. Engler, W. C. Hsieh, and M. F. Kaashoek. 'C: A language for high-level, e#cient, and machine-independent dynamic code generation. In Principles of Programming Languages, Saint Petersburg, FL, Jan. 1996.
....reported by Calder et al. Also related is work on runtime code specialization, which uses a semi invariant variable, along with its value to simplify the the code in the common case. Existing techniques require the programmer to annotate the code to identify candidates for code specialization [1, 8, 9] Value profiling can then be used to determine which of the programmer specified variables exhibit predictable behavior at runtime. Our implementation automates this process, identifying candidates for profiling, and then choosing among these candidates for optimization. There is a large body of ....
....to classify predictable instructions for speculative execution. Value profiling could also indicate which of several predictors will best suit a particular instruction, increasing prediction accuracy. 7 Conclusion Value based optimizations are becoming increasingly important for modern compilers [9] [8] Performing these optimizations relies on information gathered at runtime. Knowledge of how the optimizer will use this information can make the profiler much more efficient. This paper describes our techniques for reducing the cost of gathering value profiles, both in time and space, by ....
D. Engler, W. Hsieh, and M. Kaashoek. `c: A language for high-level, efficient, and machineindependent dynamic code generation. In 23rd Annual ACM Symposium on Principles of Programming Languages, pages 131--144, Jan 1996.
....identify the instructions that have been accessing this set. 5 Case Study: Value Profiling The predictability and invariance of data values has been actively studied recently. For mechanisms that exploit this program behavior (e.g. value prediction [12, 29, 35, 38] and dynamic specialization [3, 15, 19]) the identification of candidate invariant values is either a strict requirement or an enhancement. Because requiring the programmer to identify these values is tedious and error prone, value profiling [9, 10, 11, 20] has been proposed to automatically characterize value invariance (the ....
D. Engler, W. Hsieh, and M. Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proc. Conference on Principles of Programming Languages, pages 131--144, Jan. 1996.
....code is optimized using the value. Two versions of the code remain, and a choice is made to use the specialized code or the original code based on the runtime value of the variable. Existing techniques require the programmer to annotate the code to identify candidates for code specialization [1, 7, 8, 17, 16]. Value profiling can then be used to determine which of the programmer specified variables exhibit predictable behavior at runtime. Our implementation automates this process, identifying candidates for profiling, and then choosing among these candidates for optimization. There is a large body of ....
....to classify predictable instructions for speculative execution. Value profiling could also indicate which of several predictors will best suit a particular instruction, increasing prediction accuracy. 7 Conclusion Value based optimizations are becoming increasingly important for modern compilers [8] [7] Performing these optimizations relies on information gathered at runtime. Knowledge of how the optimizer will use this information can make the profiler much more efficient. This paper describes our techniques for reducing the cost of gathering value profiles, both in time and space, by ....
D. Engler, W. Hsieh, and M. Kaashoek. `c: A language for high-level, efficient, and machineindependent dynamic code generation. In 23rd Annual ACM Symposium on Principles of Programming Languages, pages 131--144, Jan 1996.
....future, thereby allowing the wheel of iterative design to begin turning with the least amount of delay. Four main limitations are discussed. First, constructing large pieces of code is tedious. This would naturally be remedied with language support. A promising avenue is to use the C language [2] (designed to construct code dynamically) as a sugary method of dynamically constructing MAGIK IR. C solves most of the semantic issues dealing with variable binding, and code construction, leaving us with the fairly straightforward task of modifying it to dynamically emit MAGIK IR rather than ....
D. R. Engler, W. C. Hsieh, and M. F. Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of the 23th Annual Symposium on Principles of Programming Languages, pages 131--144, St. Petersburg, FL, 1995.
....thereby allowing the wheel of iterative design to begin turning with the least amount of delay. Four main limitations are discussed. First, constructing large pieces of code is tedious. This would naturally be remedied with language support. A promising avenue is to use the C ( tick C ) language [5] (designed to construct code dynamically) as a sugary method of dynamically constructing Magik IR. C solves most of the semantic issues dealing with variable binding, and code construction, leaving us with the fairly straightforward task of modifying it to dynamically emit Magik IR rather than ....
D. R. Engler, W. C. Hsieh, and M. F. Kaashoek. `C: A language for high-level, efficient, and machineindependent dynamic code generation. In Proceedings of the 23th Annual Symposium on Principles of Programming Languages, pages 131--144, St. Petersburg, FL, 1995.
No context found.
Engler, D. R., Hsieh, W. C., and Kaashoek, M. F. 1996. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of the 23rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'96) (Jan. 1996), pp. 131--144.
No context found.
D. Engler, W. Hsieh, and F. Kaashoek. `c: A language for high-level, e#cient, and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, pages 131--144, 1996.
No context found.
D. Engler, W. Hsieh, and F. Kaashoek. `c: A language for high-level, e#cient, and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, pages 131--144, 1996.
No context found.
Dawson R. Engler, W. C. Hsieh, and Frans M. Kaashoek. `C: A language for high level, e#cent, and machine-independent dynamic code generation. Proceedings of the 23 Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Langauges, pages 131-144. January 1996.
No context found.
D.R. Engler, W.C. Hsieh, and M.F. Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. Symposium on Principles of Programming Languages, January 1996, pp. 131-144.
No context found.
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Conference Record of POPL '96: The 23rd ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pages 131--144. ACM SIGACT and SIGPLAN, ACM Press, 1996.
No context found.
D. Engler, W. Hsieh, and M. Kaashoek. `c: A language for high-level, efficient, and machine-independent dynamic code generation. In 23rd Annual ACM Symposium on Principles of Programming Languages, pages 131--144, Jan 1996.
No context found.
D. R. Engler, W. C. Hsieh, and M. F. Kaashoek. 'C: a language for high-level, efficient, and machine-independent dynamic code generation. In POPL '96: Principles of Programming Languages, pages 131--144, 1996.
No context found.
Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Conference Record of POPL '96: The 23 ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 131--144, January 1996.
No context found.
D.R. Engler, W.C. Hsieh, and M.F. Kaashoek. `C: A language for high-level, ecient, and machine-independent dynamic code generation. In Conference Record of the 23 rd Annual ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages, pages 131-144, St. Petersburg Beach, FL, USA, January 1996. ACM Press.
No context found.
Engler, D.R., W.C. Hsieh, and M.F. Kaashoek. C: A Language for High-Level, Efficient, and Machine-Independent Dynamic Code Generation. in 23rd Annual ACM Symp. on Principles of Programming Languages (POPL '96). 1996. St. Petersburg, FL.
No context found.
D.R. Engler, W.C. Hsieh, and M.F. Kaashoek. `C: A language for high-level, efficient, and machine-independent dynamic code generation. In Symposium on Principles of Programming Languages, January 1996.
No context found.
D.R. Engler, W.C. Hsieh and M.F. Kaashoek. C: A Language for High-Level, Efficient, and Machine-Independent Dynamic Code Generation. In 23 rd Annual ACM Symposium on Principles of Programming Languages (POPL'96). St. Petersburg, FL, 1996.
First 50 documents Next 50
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