|
ABSTRACT
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
L. O. Anderson, "Program Analysis and Specialization for the C Programming Language", DIKU Report No. 94/19, I)ept. of Computer Science, University of Copenhagen, 1994.
|
| |
2
|
L. O. Andersen and C. K. Gomard, "Speedup Analysis in Partial Evaluation (Preliminary Results)", Proc. A CM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, June 1992, pp. 1-7. (Also available as Technical Report YALEU/DCS/RR-909, Department of Computer Science, Yale University, New Haven, CT.)
|
| |
3
|
|
| |
4
|
R. Baler, R. Gliick, and R. ZSchling, "Partial Evaluation of Numerical Programs in Fortran", Proc. A CM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, 1994, pp. 119-132. Report 94/9, Dept. of Computer Science, University of Melbourne.
|
| |
5
|
L. Birkedal and M. Welinder, "Partial Evaluation of Standard ML", DIKU Report No. 93/22, Dept. of Computer Science, University of Copenhagen, 1993.
|
| |
6
|
A. Bondorf, Sirnilix 5.0 Manual, Department of Computer Science, University of Copenhagen, Copenhagen, Denmark, May 1993.
|
 |
7
|
|
| |
8
|
C. Castelluccia, "Automating Header Prediction", Proc. Workshop on Compiler Support for System Software, Tucson, Feb. 1996, pp. 44-53.
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
|
| |
13
|
J. W. Davidson and S. Jinturkar, "An Aggressive Approach to Loop Unrolling", Proc. Compiler Construction '96.
|
 |
14
|
|
 |
15
|
Jeffrey Dean , Craig Chambers , David Grove, Selective specialization for object-oriented languages, Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation, p.93-102, June 18-21, 1995, La Jolla, California, United States
|
| |
16
|
J. Dongarra and A. R. Hinds, "Unrolling Loops in FORTRAN", Software Practice and Experience vol. 9 no. 3, March 1979, pp. 219-226.
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
| |
20
|
C. Gurr, A Self-Applicable Partial Evaluator for the Logic Programming Language GSdel, Ph.D. Thesis, University of Bristol, 1994.
|
| |
21
|
|
 |
22
|
|
 |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
D. Mosberger, L. L. Peterson, P. G. Bridges, and S. O'Malley, "Improving the I-Cache Effectiveness of Network Software", Proc. Workshop on Compiler Support for System Software, Tucson, Feb. 1996, pp. 29-36.
|
 |
27
|
David Mosberger , Larry L. Peterson , Patrick G. Bridges , Sean O'Malley, Analysis of techniques to improve protocol processing latency, Conference proceedings on Applications, technologies, architectures, and protocols for computer communications, p.73-84, August 28-30, 1996, Palo Alto, California, United States
|
 |
28
|
|
| |
29
|
D. Sahlin, An Automatic Partial Evaluator for Full Prolog, Ph.D. Thesis, Kungliga Tekniska HSgskolan, Stockholm, Sweden, 1991. Report TRITA-TCS-9101.
|
| |
30
|
|
 |
31
|
|
|