Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information