
#14980: Runtime performance regression with binary operations on vectors -------------------------------------+------------------------------------- Reporter: ttylec | Owner: bgamari Type: bug | Status: new Priority: high | Milestone: 8.8.1 Component: Compiler | Version: 8.2.2 Resolution: | Keywords: vector | bitwise operations 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 tdammers): So, to summarize the results I have so far on my own machine (i5, debian): - The 64 columns version sees massive improvement throughout, on any compiler, and with any set of libraries; however, when the 256-columns version performs badly, the 64-columns version is slower by a factor of about 2 (~50 μs vs. ~25 μs). - Whether the improvement is seen or not does not seem to depend on the libraries - the same set of libraries, when forced with cabal, will sometimes show improvement, and sometimes not. - I have both 8.0.2 and 8.2.2 produce "good" and "bad" behavior; however, some of that may be due to accidentally running the wrong binary. The test runs in which I made absolutely sure I was running the correct binaries, and started with a clean slate, do show that 8.0.2 consistently produces "good" code, while 8.2.2 consistently produces "bad" code. So that leaves us with relatively obscure things. One thing to check would be which exact binaries stack pulls in. The GHC versions may match, but the build configuration might not. Kernel and system libs were all identical between my attempts, so I doubt those play a role. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14980#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler