Performance tests behave differently depending on presence of .hi file (even with -fforce-recomp)
Example:
[ezyang@hs01 compiler]$ cat T6048.comp.stats
/home/hs01/ezyang/ghc-compalloc/inplace/lib/bin/ghc-stage2 -B/home/hs01/ezyang/ghc-compalloc/inplace/lib -fforce-recomp -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -c T6048.hs -O -fasm +RTS -V0 -tT6048.comp.stats --machine-readable
[("bytes allocated", "119871672")
,("num_GCs", "100")
,("average_bytes_used", "4388904")
,("max_bytes_used", "12539576")
,("num_byte_usage_samples", "7")
,("peak_megabytes_allocated", "27")
,("init_cpu_seconds", "0.00")
,("init_wall_seconds", "0.00")
,("mutator_cpu_seconds", "0.09")
,("mutator_wall_seconds", "0.10")
,("GC_cpu_seconds", "0.15")
,("GC_wall_seconds", "0.15")
]
[ezyang@hs01 compiler]$ rm T6048.hi
[ezyang@hs01 compiler]$ '/home/hs01/ezyang/ghc-compalloc/inplace/bin/ghc-stage2' -fforce-recomp -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -c T6048.hs -O -fasm +RTS -V0 -tT6048.comp.stats --machine-readable -RTS
[ezyang@hs01 compiler]$ cat T6048.comp.stats
/home/hs01/ezyang/ghc-compalloc/inplace/lib/bin/ghc-stage2 -B/home/hs01/ezyang/ghc-compalloc/inplace/lib -fforce-recomp -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -c T6048.hs -O -fasm +RTS -V0 -tT6048.comp.stats --machine-readable
[("bytes allocated", "121022912")
,("num_GCs", "100")
,("average_bytes_used", "4022069")
,("max_bytes_used", "11224944")
,("num_byte_usage_samples", "7")
,("peak_megabytes_allocated", "25")
,("init_cpu_seconds", "0.00")
,("init_wall_seconds", "0.00")
,("mutator_cpu_seconds", "0.09")
,("mutator_wall_seconds", "0.11")
,("GC_cpu_seconds", "0.15")
,("GC_wall_seconds", "0.14")
]
It's a slight but present difference: I noticed because one of the perf tests was failing on an initial run of the test suite, but passing when I re-ran it.
There are two possible bugs here. One is that our implementation of -fforce-recomp
is buggy and we shouldn't be reading in the hi file at all if -fforce-recomp
is on; the other is that we should always clean up interface files before running one of these perf tests.
Trac metadata
Trac field | Value |
---|---|
Version | 7.9 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Test Suite |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |