Forked from
cmucl / cmucl
Source project has a limited visibility.
-
ram authored
MAYBE-CONVERT-TO-ASSIGNMENT and MAYBE-CONVERT-TAIL-LOCAL-CALL. Generalized let conversion to handle both assignments and normal LETs. Now local calls that we can prove will be TR are converted to jump directly to the function. We set NODE-TAIL-P to indicate this. RETURN nodes may be deleted because of this. We have to handle let conversion where the caller's RETURN was deleted due to tail recursion. Changed MERGE-LETS to remove the lambda from the tail-set and set the LAMBDA-TAIL-SET to NIL.
ram authoredMAYBE-CONVERT-TO-ASSIGNMENT and MAYBE-CONVERT-TAIL-LOCAL-CALL. Generalized let conversion to handle both assignments and normal LETs. Now local calls that we can prove will be TR are converted to jump directly to the function. We set NODE-TAIL-P to indicate this. RETURN nodes may be deleted because of this. We have to handle let conversion where the caller's RETURN was deleted due to tail recursion. Changed MERGE-LETS to remove the lambda from the tail-set and set the LAMBDA-TAIL-SET to NIL.