[GHC] #5928: INLINABLE fails to specialize in presence of simple wrapper

GHC cvs-ghc at haskell.org
Fri Mar 16 17:59:58 CET 2012


#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



More information about the Glasgow-haskell-bugs mailing list