Skip to content

Look into haddock performance regressions due to desugaring on -fno-code

c9eb4385 enabled desugaring when GHC is invoked with -fno-code in order to resolve #10600 (closed). Unfortunately this causes GHC to do more (unnecessary) work when parsing for haddock, causing some rather significant allocations regressions in the haddock performance tests,

bytes allocated value is too high:
    Expected    haddock.base(normal) bytes allocated: 25592972912 +/-5%
    Lower bound haddock.base(normal) bytes allocated: 24313324266 
    Upper bound haddock.base(normal) bytes allocated: 26872621558 
    Actual      haddock.base(normal) bytes allocated: 27868466432 
    Deviation   haddock.base(normal) bytes allocated:         8.9 %
*** unexpected stat test failure for haddock.base(normal)
=====> haddock.Cabal(normal) 6 of 7 [0, 0, 0]
bytes allocated value is too high:
    Expected    haddock.Cabal(normal) bytes allocated: 18269309128 +/-5%
    Lower bound haddock.Cabal(normal) bytes allocated: 17355843671 
    Upper bound haddock.Cabal(normal) bytes allocated: 19182774585 
    Actual      haddock.Cabal(normal) bytes allocated: 22294859000 
    Deviation   haddock.Cabal(normal) bytes allocated:        22.0 %
*** unexpected stat test failure for haddock.Cabal(normal)
=====> haddock.compiler(normal) 7 of 7 [0, 0, 0]
bytes allocated value is too high:
    Expected    haddock.compiler(normal) bytes allocated: 52762752968 +/-10%
    Lower bound haddock.compiler(normal) bytes allocated: 47486477671 
    Upper bound haddock.compiler(normal) bytes allocated: 58039028265 
    Actual      haddock.compiler(normal) bytes allocated: 65378619232 
    Deviation   haddock.compiler(normal) bytes allocated:        23.9 %
*** unexpected stat test failure for haddock.compiler(normal)

Work out how to mitigate this.

Trac metadata
Trac field Value
Version 8.0.1
Type Task
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC duog
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information