#1763: dictionaries in GHC.Float not being inlined
-----------------------+----------------------------------------------------
Reporter: simonmar | Owner: simonpj
Type: bug | Status: new
Priority: normal | Milestone: 6.8 branch
Component: Compiler | Version: 6.6.1
Severity: normal | Keywords:
Difficulty: Unknown | Os: Unknown
Testcase: | Architecture: Unknown
-----------------------+----------------------------------------------------
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`.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1763>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs