[GHC] #12357: Increasing maximum constraint tuple size significantly blows up compiler allocations

GHC ghc-devs at haskell.org
Fri Jul 1 20:34:53 UTC 2016


#12357: Increasing maximum constraint tuple size significantly blows up compiler
allocations
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.10.3
      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):

 Here are the actual relative changes in allocations.

 ||= % change  =||= alloc A  =||= alloc B =||= name
 =||
 || +79980.0% || 320      || 256256   || `sat_sjxb
 (ghc-7.11.20150614:TcRnMonad)`                                  ||
 || +3860.0%  || 440      || 17424    || `sat_sjxt
 (ghc-7.11.20150614:TcRnMonad)`                                  ||
 || +3772.0%  || 400      || 15488    || `sat_sjxu
 (ghc-7.11.20150614:TcRnMonad)`                                  ||
 || +1516.7%  || 432      || 6984     || `sat_sjyB
 (ghc-7.11.20150614:TcHsSyn)`                                    ||
 || +1253.1%  || 22040    || 298224   || `
 (ghc-7.11.20150614:OccName.mkSuperDictSelOcc)`                          ||
 || +417.8%   || 58488    || 302840   || `ds1
 (ghc-7.11.20150614:LoadIface)`                                       ||
 || +307.9%   || 499856   || 2038832  || `$wa3
 (ghc-7.11.20150614:Encoding.)`                                      ||
 || +287.5%   || 384      || 1488     || `
 (ghc-7.11.20150614:Unique.mkCTupleTyConUnique)`                         ||
 || +287.5%   || 3072     || 11904    || `
 (ghc-7.11.20150614:TysWiredIn.cTupleTyConName)`                         ||
 || +255.6%   || 936      || 3328     || `sat_sjz8
 (ghc-7.11.20150614:TcRnMonad)`                                  ||
 || +165.7%   || 4477200  || 11897920 || `$wa5
 (ghc-7.11.20150614:Encoding)`                                       ||
 || +139.4%   || 2376     || 5688     || `
 (ghc-7.11.20150614:OccName.mkClassDataConOcc)`                          ||
 || +132.4%   || 17792    || 41344    || `
 (ghc-7.11.20150614:IfaceSyn.ifaceDeclImplicitBndrs)`                    ||
 || +77.3%    || 39520    || 70064    || `
 (ghc-7.11.20150614:FastString.mkFastString)`                            ||
 || +51.0%    || 337216   || 509256   || `
 (ghc-7.11.20150614:IfaceEnv.lookupOrig)`                                ||
 || +50.7%    || 259992   || 391920   || `$wa86 (ghc-7.11.20150614:Binary)`
 ||
 || +49.6%    || 63104    || 94384    || `updNameCacheTcRn
 (ghc-7.11.20150614:IfaceEnv)`                           ||
 || +48.9%    || 3760     || 5600     || `$cget
 (ghc-7.11.20150614:CoAxiom)`                                       ||
 || +47.7%    || 224336   || 331240   || `
 (ghc-7.11.20150614:IfaceEnv.extendNameCache)`                           ||
 || +45.4%    || 302448   || 439896   || `
 (ghc-7.11.20150614:UniqSupply.takeUniqFromSupply)`                      ||
 || +44.6%    || 245336   || 354816   || `
 (ghc-7.11.20150614:Name.mkExternalName)`                                ||
 || +43.6%    || 350440   || 503160   || `
 (ghc-7.11.20150614:FastString.unpackFS)`                                ||
 || +42.7%    || 143104   || 204192   || `$wa2
 (ghc-7.11.20150614:Encoding.)`                                      ||
 || +28.8%    || 5168     || 6656     || `sat_sjzc
 (ghc-7.11.20150614:TcHsSyn)`                                    ||
 || +28.1%    || 318552   || 407976   || `
 (ghc-7.11.20150614:Unique.mkVarOccUnique)`                              ||
 || +27.7%    || 3984     || 5088     || `
 (ghc-7.11.20150614:OccName.mkDataConWorkerOcc)`                         ||
 || +27.6%    || 283320   || 361520   || `
 (ghc-7.11.20150614:FastString.mkFastStringByteString3)`                 ||
 || +27.6%    || 113328   || 144608   || `$wa
 (ghc-7.11.20150614:Encoding.)`                                       ||
 || +24.2%    || 4560     || 5664     || `
 (ghc-7.11.20150614:OccName.mkOccName)`                                  ||
 || +24.2%    || 905968   || 1124928  || `
 (ghc-7.11.20150614:TysWiredIn.isBuiltInOcc_maybe)`                      ||
 || +23.5%    || 605144   || 747376   || `$wa
 (ghc-7.11.20150614:FastString.)`                                     ||
 || +23.3%    || 269056   || 331616   || `sat_s29W
 (ghc-7.11.20150614:UniqSupply)`                                 ||
 || +23.3%    || 269056   || 331616   || `sat_s29V
 (ghc-7.11.20150614:UniqSupply)`                                 ||
 || +23.3%    || 672640   || 829040   || `sat_s29U
 (ghc-7.11.20150614:UniqSupply)`                                 ||
 || +23.3%    || 134528   || 165808   || `a5
 (ghc-7.11.20150614:UniqSupply)`                                       ||
 || +22.8%    || 3274992  || 4021296  || `$ccompare1
 (ghc-7.11.20150614:Module)`                                   ||

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


More information about the ghc-tickets mailing list