
#8971: Native Code Generator 7.8.1 RC2 is not as optimized as 7.6.3... --------------------------------------------+------------------------------ Reporter: GordonBGood | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (NCG) | Version: 7.8.1-rc2 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 GordonBGood): This bug has nothing to do with the difference between the LLVM and the NCG compiler backends; it it well known that NCG isn't that efficient for tight loops. For this bug use case code, NCG has never combined the memory read, the 'and' operation, and the memory write into one read/modify/write instruction whereas LLVM does, which explains the difference between them. This bug has to do with '''why the GHC version 7.8.1 NCG has taken a step backward''' from the previous stable version 7.6.3 in performance due to more register spills and reloads. I only referred to LLVM as proof that the problem seems to be limited to NCG as both NCG and LLVM will share the same C-- output (or at least I think so???) yet NCG shows this step backwards whereas LLVM does not. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8971#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler