|
ABSTRACT
Compile-time program optimizations are similar to poetry: more are written than are actually published in commercial compilers. Hard economic reality is that many interesting optimizations have too narrow an audience to justify their cost in a general-purpose compiler, and custom compilers are too expensive to write. An alternative is to allow programmers to define their own compile-time optimizations. This has already happened accidentally for C++, albeit imperfectly, in the form of template metaprogramming. This paper surveys the problems, the accidental success, and what directions future research might take to circumvent current economic limitations of monolithic compilers.
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
|
Angus, I. G. Applications demand class-specific optimizations: The C++ compiler can do more, in Scientific Programming 2,4 (1993), 123-131.
|
| |
2
|
|
| |
3
|
Bou-Diab, M., Dodgson, M., and Blatter, G. Vortex collisions: crossing or recombination. To appear in Physical Review Letters.
|
 |
4
|
Shigeru Chiba, A metaobject protocol for C++, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.285-299, October 15-19, 1995, Austin, Texas, United States
|
| |
5
|
OpenC++ Home Page http://www.hlla.is.tsukuba.ac.jp/-chiba/openc++.html
|
| |
6
|
Cohn, R., Goodwin, D., Lowney, P.G., and Rubin, N. Spike: An optimizer for Alpha/NT executables. In Proceedings of the USENIX Windows NT Workshop, (Seattle, Washington, Aug. 1997).
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
Gould, S. J. The Panda's Thumb: More Reflections in Natural History (1980), W. W. Norton & Company, 19-26.
|
 |
12
|
|
| |
13
|
Haney, S., Crotinger, J., Karmesin, S., and Smith, S. PETE: The portable expression template engine. In Dr. Dobb's Journal (October 1999).
|
| |
14
|
Hastings, R. and Joyce, B. Purify: fast detection of memory leaks and access errors. In Proceedings of Winter 1992 USENIX Conference (San Francisco, CA, 1991), 125-138.
|
| |
15
|
Intel Pentium 4 Processor Optimization Reference Manual, Chapter 2, (November 2000), Intel Corporation, 7.
|
| |
16
|
Lamping, J., Kiczales, G., Rodriguez, L.H., and Ruf, Erik. An Architecture for An Open Compiler. In Proceedings of the IMSA '92 Workshop on Reflection and Metu-level Architectures, (Tokyo, Japan, 1992), 95-106.
|
 |
17
|
Raymond Lo , Fred Chow , Robert Kennedy , Shin-Ming Liu , Peng Tu, Register promotion by sparse partial redundancy elimination of loads and stores, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.26-37, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
18
|
|
| |
19
|
|
| |
20
|
OpenMP Application Program Interface. http://www.openmp.org
|
| |
21
|
|
| |
22
|
Robison, A. D. Method of analyzing definitions and uses in programs with pointers and aggregates in an optimizing compiler. U.S. Patent 5,790,866 (Aug. 4, 1998)
|
| |
23
|
Robison, A. D. Method of replacing lvalues by variables in programs containing nested aggregates in an optimizing compiler. U.S. Patent 5,710,927 (Jan. 1998).
|
 |
24
|
|
 |
25
|
|
| |
26
|
Veldhuizen, T. Expression templates. In C+ + Report 7,5 (June 1995), 26-31.
|
| |
27
|
Veldhuizen, T. C++ templates as partial evaluation. In Proceedings of the 1999 A CM S1GPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio TX, January 1999), ACM Press, 13-18.
|
| |
28
|
|
| |
29
|
Velhuizen, T. Using C++ template metaprograms. In C++ Report 7,4 (May 1995), 36-43.
|
CITED BY 5
|
|
|
|
|
|
|
|
|
|
|
Keith D. Cooper , Alexander Grosul , Timothy J. Harvey , Steve Reeves , Devika Subramanian , Linda Torczon , Todd Waterman, Exploring the structure of the space of compilation sequences using randomized search algorithms, The Journal of Supercomputing, v.36 n.2, p.135-151, May 2006
|
|
|
|
|