Efficient incremental run-time specialization for free
Proceedings of the ACM SIGPLAN 1999 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
Calpa: a tool for automating selective dynamic compilation
Proceedings of the 33rd annual ACM/IEEE international symposium on Microarchitecture
Static and Dynamic Program Compilation by Interpreter Specialization
Higher-Order and Symbolic Computation
The benefits and costs of DyC's run-time optimizations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards automatic construction of staged compilers
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Conjunctive selection conditions in main memory
Proceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Efficient Implementations of Software Architectures via Partial Evaluation
Automated Software Engineering
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Combining Program and Data Specialization
Higher-Order and Symbolic Computation
Certifying Compilation and Run-Time Code Generation
Higher-Order and Symbolic Computation
Faster Fourier Transforms via Automatic Program Specialization
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
An Environment for Building Customizable Software Components
CD '02 Proceedings of the IFIP/ACM Working Conference on Component Deployment
Templates-based portable just-in-time compiler
ACM SIGPLAN Notices
Implementing multi-stage languages using ASTs, Gensym, and reflection
Proceedings of the 2nd international conference on Generative programming and component engineering
Selection conditions in main memory
ACM Transactions on Database Systems (TODS)
A retrospective on: "an evaluation of staged run-time optimizations in DyC"
ACM SIGPLAN Notices - Best of PLDI 1979-1999
A fast, memory-efficient register allocation framework for embedded systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
Using Phase Behavior in Scientific Application to Guide Linux Operating System Customization
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 10 - Volume 11
M-ECho: a middleware for morphable data-streaming in pervasive systems
EESR '05 Proceedings of the 2005 workshop on End-to-end, sense-and-respond systems, applications and services
Feedback-directed specialization of code
Computer Languages, Systems and Structures
Applying code specialization to FFT libraries for integral parameters
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
Effective inline-threaded interpretation of Java bytecode using preparation sequences
CC'03 Proceedings of the 12th international conference on Compiler construction
Improving performance through deep value profiling and specialization with code transformation
Computer Languages, Systems and Structures
Software protection through dynamic code mutation
WISA'05 Proceedings of the 6th international conference on Information Security Applications
Micro-specialization: dynamic code specialization of database management systems
Proceedings of the Tenth International Symposium on Code Generation and Optimization
Asynchronous adaptive optimisation for generic data-parallel array programming
Concurrency and Computation: Practice & Experience
Practical automatic loop specialization
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
Specializing programs with respect to run-time values has been shown to drastically improve code performance on realistic programs ranging from operating systems to graphics. Recently, various approaches to specializing code at run-time have been proposed. However, these approaches still suffer from shortcomings that limit their applicability: they are manual, too expensive, or require programs to be written in a dedicated language.We solve these problems by introducing new techniques to implement run-time specialization. The key to our approach is the use of code templates. Templates are automatically generated from ordinary programs and are optimized before run time, allowing high-quality code to be quickly generated at run time.Experimental results obtained on scientific and graphics code indicate that our approach is highly effective. Little run-time overhead is introduced, since code generation primarily consists of copying instructions. Run-time specialized programs run up to 10 times faster, and are nearly as fast as fully optimized programs (80% on average). The combination of low run-time overhead and high code quality enables specialization to be amortized in as few as 3 runs.Although this approach is highly effective, its implementation is relatively simple since it exploits existing partial evaluation and compiler technologies.