-
Notifications
You must be signed in to change notification settings - Fork 1
/
GhcPapi_Config.hs
61 lines (48 loc) · 1.42 KB
/
GhcPapi_Config.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
module GhcPapi_Config(
config
)
where
import Fibon.Run.Config
config :: RunConfig
config = RunConfig {
configId = "papi"
, runList = map RunSingle allBenchmarks
, sizeList = [Ref]
, tuneList = [Peak]
, iterations = 1
, configBuilder = build
}
collectStats :: Bool
collectStats = False
standardGHC :: FilePath
standardGHC = "/Research/darcs/ghc-PAPI.BUILD/inplace/bin"
build :: ConfigBuilder
build ConfigTuneDefault ConfigBenchDefault = do
append ConfigureFlags "--ghc-option=-rtsopts"
-- Use ghc from standard location off of HOME
mbHome <- getEnv "HOME"
maybe done
(\h -> useGhcInPlaceDir (h ++ standardGHC))
mbHome
-- Use ghc specified from environment
mbHead <- getEnv "FIBON_GHC_HEAD"
maybe done
useGhcInPlaceDir
mbHead
if collectStats
then do
collectExtraStatsFrom "ghc.stats"
append RunFlags "+RTS -tghc.stats --machine-readable -RTS"
else
done
build (ConfigTune Base) ConfigBenchDefault = do
append ConfigureFlags "--disable-optimization"
build (ConfigTune Base) (ConfigBench Palindromes) = do
append RunFlags "+RTS -K128M -RTS"
build (ConfigTune Peak) ConfigBenchDefault = do
append ConfigureFlags "--enable-optimization=2"
build (ConfigTuneDefault) (ConfigBench Cpsa) = do
append BuildFlags "--ghc-option=-fcontext-stack=42"
build (ConfigTuneDefault) (ConfigBench QuickHull) = do
append RunFlags "+RTS -K16M -RTS"
build _ _ = done