Please sign in to comment.
Copy propagation of local procedure names may re-introduce references…
… to contracted procedures, and thus breaks the invariant that contracted procedures are only referenced once. With certain code patterns (for example in srfi-14-tests.scm as reported by Mario) this could cause the compiler to contract infinitely (if the contracted code contains propagated references to other contractions). Now contraction is disabled for variables that are "replacing" (i.e. propagated). Once the propagation has taken place a later optimization pass will do the contraction. This fixes #874 (https://bugs.call-cc.org/ticket/874) Signed-off-by: Mario Domenech Goulart <email@example.com>
- Loading branch information...