#5928: INLINABLE fails to specialize in presence of simple wrapper
---------------------------------+------------------------------------------
Reporter: tibbe | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.4.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by simonpj):
I think it's because `(!)` just happens, by coincidence, to be small
enough to inline all by itself. But this inlining just happens to only
occur after the specialisation pass.
And it would not happen at all if `(!)` had been a bigger function, which
is the typical case. So, if `(!)` is big (or even, as we have seen, if
it's small) you have to mark it INLINABLE. Or, perhaps, as I say, you
want every overloaded function to be inlinable, at least if you compile
with -O2 perhaps?
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5928#comment:5>
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