Skip to content
  • Simon Peyton Jones's avatar
    Teach SpecConstr about typeDeterminesValue · d4fe2f4e
    Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
    This patch addresses #21831, point 2.  See
    Note [generaliseDictPats] in SpecConstr
    
    I took the opportunity to refactor the construction of specialisation
    rules a bit, so that the rule name says what type we are specialising
    at.
    
    Surprisingly, there's a 20% decrease in compile time for test
    perf/compiler/T18223. I took a look at it, and the code size seems the
    same throughout. I did a quick ticky profile which seemed to show a
    bit less substitution going on.  Hmm.  Maybe it's the "don't do
    eta-expansion in stable unfoldings" patch, which is part of the
    same MR as this patch.
    
    Anyway, since it's a move in the right direction, I didn't think it
    was worth looking into further.
    
    Metric Decrease:
        T18223
    d4fe2f4e