Skip to content
  • Simon Peyton Jones's avatar
    [project @ 2001-03-01 17:10:06 by simonpj] · 09518039
    Simon Peyton Jones authored
    Improve IdInfo substitution
    
    To get rules to work nicely, we need to make rules for recursive functions
    active in the RHS of the very recursive function itself.  This can be
    done nicely: the change is to move the calls to simplIdInfo in Simplify
    to an earlier place.
    
    The second thing is that when doing simple expression substitution
    in a rule (which we do during simplification for rules attached to an Id)
    we were zapping the occurrence info carefully pinned on the rule binders
    when the rule was put into the Id's rules.  This in turn meant that
    the simplifer ran more iterations than necessary when rules were fired.
    (Andrew Tolmach discovered this.)
    
    So I tidied up the interface to Subst a little.  The relevant functions
    that have changed are
    	simplBndr, simplBndrs, simplLetId, simplIdInfo,
    	substAndCloneId, substAndCloneIds, substAndCloneRecIds,
    
    There are consequential changes in other modules, but it compiles
    at least the whole standard libraries happily, and the codegen tests,
    so I'm reasonably confident in it.  But watch out for new strange
    happenings.
    09518039