On the conversion of indirect to direct recursion

  • Authors:
  • Owen Kaser;C. R. Ramakrishnan;Shaunak Pawagi

  • Affiliations:
  • State Univ. of New York, Stony Brook;State Univ. of New York, Stony Brook;State Univ. of New York, Stony Brook

  • Venue:
  • ACM Letters on Programming Languages and Systems (LOPLAS)
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

Procedure inlining can be used to convert mutual recursion to direct recursion. This allows use of optimization techniques that are most easily applied to directly recursive procedures, in addition to the well-known benefits of inlining. We present tight (necessary and sufficient) conditions under which inlining can transform all mutual recursion to direct recursion, and those under which heuristics to eliminate mutual recursion always terminate. We also present a technique to eliminate mutually recursive circuits that consist of only tail calls. From this, we conclude that tail recursion elimination should be interleaved with inlining.