[GHC] #13344: Core string literal patch regresses compiler performance considerably

GHC ghc-devs at haskell.org
Mon Feb 27 13:49:25 UTC 2017


#13344: Core string literal patch regresses compiler performance considerably
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 Hmm, indeed ticky suggests that there is some leakage into interface
 files,
 {{{
 | Change    | alloc A | alloc B | name
 |
 |-----------|---------|---------|-------------------------------------------------------------------------------------------------|
 | +417944.0 | 3978840 | 4396784 |
 containers-0.5.7.1:Data.IntMap.Base.$winsert (:<no module>)
 |
 | +249216.0 | 1225560 | 1474776 | $wgo (ghc:BinIface)
 |
 | +166144.0 | 821968  | 988112  | go7 (ghc:LoadIface)
 |
 | +131256.0 | 1767520 | 1898776 | ghc:Module.$sinsertWith_$s$sgo10 (:<no
 module>)                                                 |
 | +75680.0  | 566080  | 641760  | mk_supply (ghc:UniqSupply)
 |
 | +68208.0  | 454152  | 522360  | unsafeDupableInterleaveIO1
 (base:GHC.IO.Unsafe)                                                 |
 | +62016.0  | 1209552 | 1271568 |
 containers-0.5.7.1:Data.Map.Base.balanceL (:<no module>)
 |
 | +52864.0  | 1592272 | 1645136 | ghc:IfaceType.$w$cget6 (:<no module>)
 |
 | +45312.0  | 744224  | 789536  | ghc:Binary.$w$cget3 (:<no module>)
 |
 | +45312.0  | 226728  | 272040  | ghc:IfaceSyn.$w$cget1 (:<no module>)
 |
 | +45312.0  | 238080  | 283392  | ghc:TcRnMonad.$wforkM_maybe (:<no
 module>)                                                      |
 | +44776.0  | 934504  | 979280  | ghc:FastString.$wmkFastStringWith (:<no
 module>)                                                |
 | +31360.0  | 340240  | 371600  | go (base:Data.OldList)
 |
 | +30208.0  | 156096  | 186304  | ghc:Module.$WDefiniteUnitId (:<no
 module>)                                                      |
 | +30208.0  | 156096  | 186304  | ghc:Module.$w$cget2 (:<no module>)
 |
 | +29008.0  | 1155896 | 1184904 | base:GHC.Base.++ (:<no module>)
 |
 | +27976.0  | 39000   | 66976   | ghc:TysWiredIn.$wisBuiltInOcc_maybe
 (:<no module>)                                              |
 | +26432.0  | 130984  | 157416  | $wlvl12 (ghc:HscTypes)
 |
 | +26432.0  | 202496  | 228928  |
 bytestring-0.10.8.1:Data.ByteString.$wcopy (:<no module>)
 |
 | +26432.0  | 355440  | 381872  | ghc:NameCache.extendNameCache1 (:<no
 module>)                                                   |
 | +22768.0  | 71896   | 94664   | lexToken (ghc:Lexer)
 |
 | +22656.0  | 137472  | 160128  | ghc:Binary.$w$cget1 (:<no module>)
 |
 | +22656.0  | 107040  | 129696  | ghc:Binary.$wlazyGet (:<no module>)
 |
 | +22656.0  | 333696  | 356352  | ghc:FastString.$wmkFastStringByteString
 (:<no module>)                                          |
 | +20544.0  | 0       | 20544   | ghc:TcRnMonad.emitInsoluble3 (:<no
 module>)                                                     |
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13344#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list