The packer filter: an efficient mechanism for user-level network code
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Threads and input/output in the synthesis kernal
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
A portable interface for on-the-fly instruction space modification
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Automatic autoprojection of recursive equations with global variable and abstract data types
Science of Computer Programming
Compiling with continuations
Two-level functional languages
Two-level functional languages
Synthesis: an efficient implementation of fundamental operating system services
Synthesis: an efficient implementation of fundamental operating system services
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Separate compilation for Standard ML
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Signatures for a network protocol stack: a systems application of Standard ML
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
DCG: an efficient, retargetable dynamic code generation system
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Lisp and Symbolic Computation - Special issue on parallel symbolic applications
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Fast, effective dynamic compilation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
VCODE: a retargetable, extensible, very fast dynamic code generation system
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
C: a language for high-level, efficient, and machine-independent dynamic code generation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A modal analysis of staged computation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Annotation-directed run-time specialization in C
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Prescriptive Frameworks for Multi-Level Lambda-Calculi
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Run-time code generation and modal-ML
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
An evaluation of staged run-time optimizations in DyC
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Programming Techniques: Regular expression search algorithm
Communications of the ACM
Efficient Multi-level Generating Extensions for Program Specialization
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Fast Binding-Time Analysis for Multi-Level Specialization
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Compiler Generation for Interactive Graphics Using Intermediate Code
Selected Papers from the Internaltional Seminar on Partial Evaluation
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Fast, Optimized Sun RPC Using Automatic Program Specialization
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
Standard ML Signatures for a Protocol Stack
Standard ML Signatures for a Protocol Stack
Shade: A Fast Instruction Set Simulator for Execution Profiling
Shade: A Fast Instruction Set Simulator for Execution Profiling
Representation-based just-in-time specialization and the psyco prototype for python
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Hi-index | 0.00 |
We describe the design and implementation of a compiler that automatically translates ordinary programs written in a subset of ML into code that generates native code at run time. Run-time code generation can make use of values and invariants that cannot be exploited at compile time, yielding code that is often superior to statically optimal code. But the cost of optimizing and generating code at run time can be prohibitive. We demonstrate how compile-time specialization can reduce the cost of run-time code generation by an order of magnitude without greatly affecting code quality. Several benchmark programs are examined, which exhibit an average cost of only six cycles per instruction generated at run time.