Large bump in T13701 metrics on x86_64-deb9-dwarf
While looking into various perf test failures and whether they were due to some variance/noise or an actual change of behaviour in GHC, I stumbled upon a failure due to T13701
, at https://gitlab.haskell.org/ghc/ghc/-/jobs/187105.
x86_64-linux-deb9-dwarf T13701 normal compile_time/bytes allocated 2506087488 [MetricChange.Increase from (x86_64-linux-deb9-dwarf, T13701, normal, compile_time/bytes allocated, 2440327316.0) @ HEAD~4]
I naturally looked at the evolution of this metric, over the past 200 commits, for this particular environment. Graph here
We can see a clear bump in allocated bytes, located around the commit that triggered the job, fd66fffd. (You can check by hovering your mouse on the first dot that appears at the top of the "hill", you should see the commit message associated to fd66fffd in a tiny rectangle at the top left corner of the page.)
If we look at the actual numbers and associated commits, we definitely confirm the bump and that it happened somewhere in those 4 commits that list at the end of this snippet:
$ python3 testsuite/driver/perf_notes.py --ci --test-name "T13701" --test-env x86_64-linux-deb9-dwarf master~20..master
T13701
compile_time/bytes allocated
normal
Commit x86_64-linux-deb9-dwarf
--------------------------------------------------------------------------
214d81220d89ba76350a0eefa837c90797298595 2444131192.00
70b62c97622f6527cf606af052fb1f0f14783b28
c6759080a91804266feb0e4e3a2c614f330649f5 2444287704.00
35c99e720ddbb3ce1355d63c9fb68ef156b9f586 2444214664.00
d2471964ef06219811c03c2ed0710f9ff98e97ef 2444140872.00
1e2e82aaaebec837368708b82f62b3c41932e88e 2444179760.00
51067194e03849eb0c04e1dbaf829972ea64be53
c751082ca0946f8686453fa2a775809fd027c9c7
dab12c8780fe1e6e3c2adb1c9565e2a43aa207db 2509607048.00
c9236384e5aaa50e188f2b8549d61c0a20d1af86 2510050656.00
a4ce26e0dbbd736b4106c3d30979ae0058922a06 2509599096.00
cabafe34156acb80cd9a918363b2a342fb0c8e66 2509986704.00
4a6d3d68f2ce97c1f231eede3819299a0fd2b9c8 2511973568.00
01006bc79582616c9bbc842b397e85437a57ac18
9980fb58f613ee3363c7e4cb86453e542c6c69aa 2511859140.00
182b119943d34e82f67525c4b2390557f060c5f9
3c9161621c6e467f53c5d4649a3c54b3cb40fbf9 2511626034.67
3b65655c4cef5407829ed41707c48be2f8b3b340 2511535144.00
5d4f16eed151caddf4624ff0a1fc23d5a4475957 2511486544.00
120f2e5343d5ccd3ad117d530018b75302c6482b 2512168400.00
$ git log --oneline d2471964ef06219811c03c2ed0710f9ff98e97ef..dab12c8780fe1e6e3c2adb1c9565e2a43aa207db
dab12c8780 Describe optimisation of demand analysis of noinline
c751082ca0 testsuite: Make ExplicitForAllRules1 more robust
51067194e0 base: Ensure that failIO isn't SOURCE imported
1e2e82aaae Fix a bad error in tcMatchTy
I will try to figure out which commit is to blame (quite likely 51067194, since the two commits that come after don't seem to touch something that can affect the compiler) and why.