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 |