Investigate inlining sweetspot for Generics with `-fdicts-strict`
I noticed that
T9630 is quite sensitive to inlining behaviour) when
-fdicts-strict is enabled.
- Compiler performance is good with a low inlining threshold.
- Performance is good with a high inlining threshold.
- Compiler performance absolutely tanks at some point in between.
Steps to reproduce
Compile T9630 with different
-funfolding-use-threshold settings and -fdicts-strict.
Compiler performance should be somewhat stable across unfolding thresholds and -fdicts-strict.
I assume this issue manifests itself in Cabal, where it causes the compile time regressions seen in !2575 as well.
This also affects generics runtime performance. As only after increasing the threshold T9630 get's rid of the generics instance overhead.
Things to look at
- Can this be solved by user given inline pragmas
- Can this be solved by derived generics code having inline pragmas
- Are there other approaches?