[GHC] #8971: Native Code Generator 7.8.1 RC2 is not as optimized as 7.6.3...

GHC ghc-devs at haskell.org
Thu Apr 24 20:53:27 UTC 2014


#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


More information about the ghc-tickets mailing list