#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
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to