• Joachim Breitner's avatar
    Implement CallArity analysis · cdceadf3
    Joachim Breitner authored
    This analysis finds out if a let-bound expression with lower manifest
    arity than type arity is always called with more arguments, as in that
    case eta-expansion is allowed and often viable. The analysis is very
    much tailored towards the code generated when foldl is implemented via
    foldr; without this analysis doing so would be a very bad idea!
    There are other ways to improve foldr/builder-fusion to cope with foldl,
    if any of these are implemented then this step can probably be moved to
    -O2 to save some compilation times. The current impact of adding this
    phase is just below +2% (measured running GHC's "make").