Using mathematics to improve ada compiled code, part 2

Ward Douglas Maurer · 2007

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.

Read the paper · More papers on PaperTik