Forked from
cmucl / cmucl
9454 commits behind the upstream repository.
ram
authored
triggered reliably (and required IR1 optimization to run to completion for correctness.) Now we merge tail sets whenever we convert a local call that delivers its value to a return (regardless of whether it is truly TR.) This liberalization actually improves type inference: previously non-TR calls would mess up type inference. Now MERGE-TAIL-SETS must be called whenever IR1 is modified so that a local call is changed to be potentially tail recursive (i.e. deliver its value to a return.) It seems that the only such place is in MAYBE-DELETE-EXIT in ir1opt.