ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Code motion of control structures in high-level languages
Full text PdfPdf (2.31 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
St. Petersburg Beach, Florida
Pages: 70 - 85  
Year of Publication: 1986
Authors
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 35,   Citation Count: 23
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/512644.512651
What is a DOI?

ABSTRACT

One trend among programmers is the increased use of abstractions. Through encapsulation techniques, abstractions extend the repertory of data structures and their concomitant operations that are processed directly by a compiler. For example, a compiler might not offer sets or set operations in its base language, but abstractions allow a programmer to define sets in terms of constructs already recognized by the compiler. In particular, abstractions can allow new constructs to be defined in terms of other abstractions. Although significant power is gained through the use of layered abstractions, object code quality suffers as increasingly less of a program's data structures and operations are exposed to the optimization phase of a compiler. Multiple references to abstractions are also inefficient, since the interaction between abstractions is often complex yet hidden from a compiler. Abstractions are most flexible when they are cast in general terms; a specific invocation is then tailored by the abstraction to obtain the appropriate code. A sequence of references to such abstractions can be inefficient due to functional redundancy that cannot be detected at compile-time. By integrating the references, the offending segments of code can be moved to a more advantageous position. Although procedure integration materializes abstracted constructs, the abstractions can still be ineligible for optimization using current techniques; in particular, abstractions often involve loops and conditional branches that can obscure code that would otherwise be eligible for code motion.


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
 
2
 
3
{Banerjee79} Banerjee, U., Speedup of Ordinary Programs. Published by University of Illinois at Urbana-Champaign, Oct. 1979, DCS Report No. UIUCDCS-R-79--989.
 
4
{Burke84} Burke, M., An interval approach toward interprocedural analysis. Published by IBM, July, 1984, RC 10640 #47724.
 
5
{Chaitin81} Chaitin, G. J., Auslander, M. A., Chandra, A. K., Cocke, J., Hopkins, M. E., Markstein, P. W., Register allocation via coloring. <i>Computer Languages,</i> 1981, vol. 6, page 47--57.
6
 
7
8
 
9
10
11
12
13
14
15
 
16
{Reif81} Reif, J. H., Tarjan, R. E., Symbolic program analysis in almost linear time. <i>SIAM Journal of Computing,</i> Feb. 1981, vol. 11, no. 1, page 81--93.
 
17
{Reif82} Reif, J. H., Lewis, H. R., Efficent symbolic analysis of programs. Published by Harvard University, Aiken Computation Laboratory, 1982, no. TR-37--82.
 
18
{Schwartz73} Schwartz, J. T., On Programming, An Interim Report on the SETL Project, Installment II: The SETL Language and Examples of Its Use. Published by Computer Science Department, Courant Institute of Mathematical Sciences. New York University, Oct. 1973.
 
19
{Schwartz79} Schwartz, J. T., Sharir, M., A design for optimizations of the bitvectoring class. Published by Courant Institute of Mathematical Sciences. Computer Science Department, New York University., Sept. 1979, no. 17.
 
20
{Tarjan74} Tarjan, R. E., Testing flow graph reducibility. <i>Journal of Computer and Systems Sciences</i>, Dec. 1974, vol. 9, page 355--365.
21
 
22
{Wolfe82} Wolfe, M. J., Optimizing Supercompilers for Supercomputers. Published by Computer Science Department, University of Illinois at Urbana-Champaign, 1982.

CITED BY  23
Collaborative Colleagues:
Ron Cytron: colleagues
Andy Lowry: colleagues
F. Kenneth Zadeck: colleagues