[GHC] #4960: Better inlining test in CoreUnfold

GHC ghc-devs at haskell.org
Tue Jan 24 11:14:29 UTC 2017


#4960: Better inlining test in CoreUnfold
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:
            Type:  task              |               Status:  new
        Priority:  low               |            Milestone:
       Component:  Compiler          |              Version:  7.0.1
      Resolution:                    |             Keywords:  newcomer,
                                     |  Inlining
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 alexbiehl):

 I have refined the above patch in
 https://github.com/alexbiehl/ghc/commit/e29f88b5d952f2f40f68e2bb49f051b6684d2686
 and ran `./validate --testsuite-only --fast` on it

 It result in longer compile time (about 27-35%) for `T1969` and `T3294` I
 have no clue why. But both `haddock.base' and `haddock.Cabal` show ~30%
 less allocations and  `T9203' even 57%. I think this is nice. I hope I am
 on the right track here.

 {{{
 Unexpected stat failures:
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/compiler/T1969.run         T1969 [stat not good enough]
 (normal)
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/compiler/T5631.run         T5631 [stat too good] (normal)
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/compiler/T3294.run         T3294 [stat not good enough]
 (normal)
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/haddock/haddock.base.run   haddock.base [stat too good]
 (normal)
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/haddock/haddock.Cabal.run  haddock.Cabal [stat too good]
 (normal)
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/should_run/T5205.run       T5205 [stat too good] (normal)
    /var/folders/7n/mkhl20_55n95s7ytnm9b11lw0000gp/T/ghctest-jl0wiuid/test
 spaces/./perf/should_run/T9203.run       T9203 [stat too good] (normal)

 peak_megabytes_allocated value is too high:
     Expected    T1969(normal) peak_megabytes_allocated: 68 +/-20%
     Lower bound T1969(normal) peak_megabytes_allocated: 54
     Upper bound T1969(normal) peak_megabytes_allocated: 82
     Actual      T1969(normal) peak_megabytes_allocated: 87
     Deviation   T1969(normal) peak_megabytes_allocated: 27.9 %
 max_bytes_used value is too high:
     Expected    T1969(normal) max_bytes_used: 17285216 +/-15%
     Lower bound T1969(normal) max_bytes_used: 14692433
     Upper bound T1969(normal) max_bytes_used: 19877999
     Actual      T1969(normal) max_bytes_used: 23225104
     Deviation   T1969(normal) max_bytes_used:     34.4 %
 *** unexpected stat test failure for T1969(normal)

 max_bytes_used value is too high:
     Expected    T3294(normal) max_bytes_used: 52992688 +/-20%
     Lower bound T3294(normal) max_bytes_used: 42394150
     Upper bound T3294(normal) max_bytes_used: 63591226
     Actual      T3294(normal) max_bytes_used: 64107552
     Deviation   T3294(normal) max_bytes_used:     21.0 %
 *** unexpected stat test failure for T3294(normal)

 bytes allocated value is too low:
 (If this is because you have improved GHC, please
 update the test so that GHC doesn't regress again)
     Expected    T5631(normal) bytes allocated: 1077429456 +/-5%
     Lower bound T5631(normal) bytes allocated: 1023557983
     Upper bound T5631(normal) bytes allocated: 1131300929
     Actual      T5631(normal) bytes allocated: 1006121416
     Deviation   T5631(normal) bytes allocated:       -6.6 %
 *** unexpected stat test failure for T5631(normal)

 bytes allocated value is too low:
 (If this is because you have improved GHC, please
 update the test so that GHC doesn't regress again)
     Expected    haddock.base(normal) bytes allocated: 32855223200 +/-5%
     Lower bound haddock.base(normal) bytes allocated: 31212462040
     Upper bound haddock.base(normal) bytes allocated: 34497984360
     Actual      haddock.base(normal) bytes allocated: 22651400376
     Deviation   haddock.base(normal) bytes allocated:       -31.1 %
 *** unexpected stat test failure for haddock.base(normal)

         bytes allocated value is too low:
         (If this is because you have improved GHC, please
         update the test so that GHC doesn't regress again)
             Expected    haddock.Cabal(normal) bytes allocated: 25478853176
 +/-5%
             Lower bound haddock.Cabal(normal) bytes allocated: 24204910517
             Upper bound haddock.Cabal(normal) bytes allocated: 26752795835
             Actual      haddock.Cabal(normal) bytes allocated: 17772058640
             Deviation   haddock.Cabal(normal) bytes allocated:       -30.2
 %

 bytes allocated value is too low:
 (If this is because you have improved GHC, please
 update the test so that GHC doesn't regress again)
     Expected    T5205(normal) bytes allocated: 56208 +/-5%
     Lower bound T5205(normal) bytes allocated: 53397
     Upper bound T5205(normal) bytes allocated: 59019
     Actual      T5205(normal) bytes allocated: 53360
     Deviation   T5205(normal) bytes allocated:  -5.1 %
 *** unexpected stat test failure for T5205(normal)

 bytes allocated value is too low:
 (If this is because you have improved GHC, please
 update the test so that GHC doesn't regress again)
     Expected    T9203(normal) bytes allocated:  95451192 +/-5%
     Lower bound T9203(normal) bytes allocated:  90678632
     Upper bound T9203(normal) bytes allocated: 100223752
     Actual      T9203(normal) bytes allocated:  40617752
     Deviation   T9203(normal) bytes allocated:     -57.4 %
 *** unexpected stat test failure for T9203(normal)

 }}}

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


More information about the ghc-tickets mailing list