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 pa
per we consider how resource considerations can be incorporated within
a partial evaluator. We develop an abstract formulation of the proble
m, show that optimal resource-bounded partial evaluation is NP-complet
e, and discuss simple heuristics that can be used to address the probl
em in practice.