Nth revision of this code.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sun, 1 Apr 1990 22:23:16 +0000 (22:23 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sun, 1 Apr 1990 22:23:16 +0000 (22:23 +0000)
commit440f99979bfe3465e7f53ee80b3088ce6891b0be
tree29653bc91fe60c91bb4fbc1103dcfde743f0e8a0
parent31a9e2611d058cad8729d9ada12ddc9e5497c242
Nth revision of this code.

Improve the closing and undrifting code significantly.  Many of the
procedures that were (needlessly) closed by the previous version are
no longer closed.

Undrifting constraints are computed more precisely.

Additionally, closing checks connectivity of the environment chain
(generating undrifting constraints as necessary) to ensure that all
the free variables captured are in fact available, and it also ensures
that disowned children (spliced out by the drifting code) are
undrifted if they depend on the closed-over variables.

One potential non-improvement introduced:  Undrifting any procedure
forces its compatibility class to close, in order to avoid a harder
analysis.  This is a cop-out for now.
v7/src/compiler/fgopt/closan.scm