diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2020-09-28 17:59:58 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-10-01 18:36:47 -0400 |
commit | e3655f810b4eba1fb7d81a3227a08dae8b85dfc4 (patch) | |
tree | 82322572074b4659b5a265c44f93151aaefc913a /docs/users_guide/flags.py | |
parent | 93d5de165a81dfb335bf1646c2e29956f5ab55ea (diff) | |
download | haskell-e3655f810b4eba1fb7d81a3227a08dae8b85dfc4.tar.gz |
Don't attach CPR signatures to NOINLINE data structures (#18154)
Because the generated `KindRep`s don't have an unfolding, !3230 did not
actually stop to compute, attach and serialise unnecessary CPR
signatures for them. As already said in
`Note [CPR for data structures]`, that leads to bloated interface
files which is ultimately quadratic for Nested CPR.
So we don't attach any CPR signature to bindings that
* Are not thunks (because thunks are not in WHNF)
* Have arity 0 (which means the top-level constructor is not a lambda)
If the data structure has an unfolding, we continue to look through it.
If not (as is the case for `KindRep`s), we look at the unchanged CPR
signature and see `topCprType`, as expected.
Diffstat (limited to 'docs/users_guide/flags.py')
0 files changed, 0 insertions, 0 deletions