dictionaries in GHC.Float not being inlined
Some dictionaries exported by GHC.Float
are not inlined, because they are being marked as loop breakers, e.g. GHC.Float.$f4
. This makes x2n1
in nofib much slower, and possibly others.
One reason this happens is that constructor applications are beaten by (a) inline candidates and (b) bindings with RULES in OccurAnal.score
.
Simon & I addressed (a) by changing it so that normal inline candidates are now scored lower than constructor applications, but wrappers are scored much higher. This unfortunately doesn't fix GHC.Float
. If we also make bindings with RULEs score lower than constructor applications, then the compiler goes into a loop when compiling Data.Traversable
.
Trac metadata
Trac field | Value |
---|---|
Version | 6.6.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |