Using mathematics to improve ada compiled code, part 2: the proof

  • Authors:
  • Ward D. Maurer

  • Affiliations:
  • The George Washington University, Washington, DC

  • Venue:
  • Proceedings of the 2007 ACM international conference on SIGAda annual international conference
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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.