Whenever I try to inline a lot of nested function calls, GHC decides to specialise one of the functions and the specialised function is no longer inlined. I hoped to get the function inlined anyway by specialising it manually. Say, I want to inline genericFunc

{-# INLINE genericFunc #-}
genericFunc :: RealFrac a => a -> Int

but GHC inserts a call to genericFunc1 specialised to a=Double where I apply genericFunc to a Double argument.

Now I define

{-# INLINE doubleFunc #-}
doubleFunc :: Double -> Int
doubleFunc = genericFunc

However, in the Core output 'doubleFunc' does not get the __inline_me tag and thus will not be inlined, too. :-(
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to