-
Simon Marlow authored
Patch from SimonPJ (slightly tweaked by me after checking performance results): Fix occasional O(n^2) behaviour in the simplifier. There was a possibility that by inlining a binding, we could re-simplify an arbitrary sized expression. This patch fixes it by moving the inlining of arbitrary-sized expressiong to the binding site (preInlineUnconditionally), so the decision to inline happens before simplifying the RHS. To do this, we have to collect more information during the occurrence analysis phase. We still make inlining decisions at the call site, but they are always size-limited, so we can't get quadratic blowup.
cfd9e9b3