
#16004: Vector performance regression in GHC 8.6 -------------------------------------+------------------------------------- Reporter: guibou | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.3 Component: Compiler | Version: 8.6.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by guibou): Simon: Is the following example without `vector` interesting as a standalone test case: {{{#!haskell import Data.Foldable (for_) main :: IO () main = do let n = 1000 for_ [0 :: Int ..(n - 1)] $ \_k -> do for_ [0 :: Int ..(n - 1)] $ \_i -> do for_ [0 :: Int ..(n - 1)] $ \_j -> do pure () }}} Timings: ghc 8.2.2: 0.667s ghc 8.4.4: 0.357s ghc 8.6.2: 1.007s Note that I have only included the results without using `-fllvm` because apparently the llvm backend is "smart" enough to understand that the loops can be removed and results in a runtime of 0.001s. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16004#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler