#3738: Typechecker floats stuff out of INLINE right hand sides
---------------------------------+------------------------------------------
    Reporter:  rl                |        Owner:                         
        Type:  bug               |       Status:  new                    
    Priority:  normal            |    Milestone:  6.14.1                 
   Component:  Compiler          |      Version:  6.13                   
    Keywords:                    |   Difficulty:                         
          Os:  Unknown/Multiple  |     Testcase:                         
Architecture:  Unknown/Multiple  |      Failure:  Runtime performance bug
---------------------------------+------------------------------------------

Comment(by rl):

 This seems to be fixed in the current HEAD. However, the problem affects
 vector quite a bit in 6.12. Would it be easy to fix? FWIW, here is a small
 example which demonstrates how this breaks list fusion. The two functions
 must be in different modules.

 {{{
 foo :: Num a => a -> [a]
 {-# INLINE foo #-}
 foo x = map (+1) (repeat x)

 bar :: Int -> [Int]
 {-# INLINE bar #-}
 bar x = map (+2) (foo x)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3738#comment:7>
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

Reply via email to