ABSTRACT
In a previous paper, we presented a method of eliminating most procedure call overhead, and most static scoping overhead, in compiling a program written in Ada, or, for that matter, in any language which allows nested procedures. This involves the construction of a loop tree for the call graph of the program; we described this in another earlier paper. Once this is constructed, we make use of a criterion for deciding when a new base register is needed. Suppose that U and V are procedures, with V nested in U. Then the only time a new base register might be needed by V is when there is a loop, in the loop tree, that contains V but not U. This result was stated without proof in the first part of this paper; here we present the proof, after reviewing some basic mathematical concept.
- Fischer, C. N. , and LeBlanc, R. J. Crafting a Compiler. Benjamin/Cummings, Menlo Park, CA, 1988. Google Scholar
Digital Library
- Ghezzi, C. , and Jazayeri, M. Programming Language Concepts (2d ed. ). Wiley, New York, 1987. Google Scholar
Digital Library
- Horowitz, E. , and Sahni, S. Fundamentals of Data Structures. Computer Science Press, Rockville, MD, 1983.Google Scholar
- Maurer, W. D. Loop Trees for Directed Graphs and Their Applications. Technical Report TR-GWU-CS-05-004, Computer Science Dept. , George Washington University, Washington, 2005.Google Scholar
- Maurer, W. D. Using mathematics to improve Ada compiled code. In Lecture Notes in Computer Science 4006, 2006, 191--202. Google Scholar
Digital Library
- Maurer, W. D. The Rearranger -- a new assembler utility. In Proc. 21 st IEEE/ACM Intl. Conf. On Automated Software Eng. (ASE 2006), Tokyo, Japan, Sept. 2006, 357--358. Google Scholar
Digital Library
- Maurer, W. D. Generalized structured programs and loop trees. Science of Computer Programming 67, 2007, 223--246. Google Scholar
Digital Library
- Pratt, T. W. Programming Language Design and Implementation (2d ed. ). Prentice-Hall, Englewood Cliffs, NJ, 1984. Google Scholar
Digital Library
- Ryder, B. G. Constructing the call graph of a program. IEEE Trans. Software Eng. 5, 3 (May 1979), 216--226. Google Scholar
Digital Library
- Sharir, M. A strong-connectivity algorithm and its applications in data flow analysis. Comput. Math. Appl. 7 (1981), 67--72.Google Scholar
Cross Ref
Index Terms
Using mathematics to improve ada compiled code, part 2: the proof
Recommendations
Using mathematics to improve ada compiled code, part 2: the proof
SIGAda '07In a previous paper, we presented a method of eliminating most procedure call overhead, and most static scoping overhead, in compiling a program written in Ada, or, for that matter, in any language which allows nested procedures. This involves the ...
Removing backward go-to statements from Ada programs: possibilities and problems
We here apply a recent mathematical result to the design of a process for removing backward go-to statements from Ada programs. Such statements are often used by programmers whose only reasons to use Ada are contractual. The mathematical result involves ...
Removing backward go-to statements from Ada programs: possibilities and problems
SIGAda '08: Proceedings of the 2008 ACM annual international conference on SIGAda annual international conferenceWe here apply a recent mathematical result to the design of a process for removing backward go-to statements from Ada programs. Such statements are often used by programmers whose only reasons to use Ada are contractual. The mathematical result involves ...







Comments