A study of scalar compilation techniques for pipelined supercomputers
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
Inline function expansion for compiling C programs
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Achieving high instruction cache performance with an optimizing compiler
ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
Binding time analysis for high order untyped functional languages
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Profile guided code positioning
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Subprogram Inlining: A Study of its Effects on Program Execution Time
IEEE Transactions on Software Engineering
Program analysis and optimization for machines with instruction cache
Program analysis and optimization for machines with instruction cache
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Towards better inlining decisions using inlining trials
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Selective specialization for object-oriented languages
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Resource-bounded partial evaluation
ACM Computing Surveys (CSUR)
Analysis of techniques to improve protocol processing latency
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
The Effect of Code Expanding Optimizations on Instruction Cache Design
IEEE Transactions on Computers
Efficient Multi-level Generating Extensions for Program Specialization
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
BTA Algorithms to Ensure Termination of Off-Line Partial Evaluation
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Bigloo: A Portable and Optimizing Compiler for Strict Functional Languages
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Visualizing partial evaluation
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Deriving Genetic Programming Fitness Properties by Static Analysis
EuroGP '02 Proceedings of the 5th European Conference on Genetic Programming
Poly-controlled partial evaluation
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Poly-controlled partial evaluation in practice
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A Study on the Practicality of Poly-Controlled Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Oracle-Based Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Provably Correct Code Generation: A Case Study
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards provably correct code generation via horn logical continuation semantics
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
Most partial evaluators do not take the availability of machine-level resources, such as registers or cache, into consideration when making their specialization decisions. The resulting resource contention can lead to severe performance degradation---causing, in extreme cases, the specialized code to run slower than the unspecialized code. In this paper we consider how resource considerations can be incorporated within a partial evaluator. We develop an abstract formulation of the problem, show that optimal resource-bounded partial evaluation is NP-complete, and discuss simple heuristics that can be used to address the problem in practice.