
#8763: forM_ [1..N] does not get fused (10 times slower than go function) --------------------------------------------+------------------------------ Reporter: nh2 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime performance bug | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: --------------------------------------------+------------------------------ Comment (by nomeata): A comment in `SetLevels` (which I just came across) in the code indicates that this problem should have been taken care of: {{{ -- We are keen to float something to the top level, even if it does not -- escape a lambda, because then it needs no allocation. But it's controlled -- by a flag, because doing this too early loses opportunities for RULES -- which (needless to say) are important in some nofib programs -- (gcd is an example). }}} So either my assumption is wrong, or this does not work as desired. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8763#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler