Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project
Project
Details
Activity
Releases
Cycle Analytics
Insights
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Security & Compliance
Security & Compliance
Dependency List
Packages
Packages
List
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jberryman
GHC
Commits
646e3dc2
Commit
646e3dc2
authored
Mar 15, 2019
by
Sebastian Graf
Committed by
Marge Bot
Mar 20, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a bench flavour to Hadrian
parent
505c5ab2
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
38 deletions
+53
-38
flavours.md
hadrian/doc/flavours.md
+20
-34
hadrian.cabal
hadrian/hadrian.cabal
+1
-0
Settings.hs
hadrian/src/Settings.hs
+4
-3
Benchmark.hs
hadrian/src/Settings/Flavours/Benchmark.hs
+24
-0
Llvm.hs
hadrian/src/Settings/Flavours/Llvm.hs
+4
-1
No files found.
hadrian/doc/flavours.md
View file @
646e3dc2
...
...
@@ -87,6 +87,17 @@ when compiling the `compiler` library, and `hsGhc` when compiling/linking the GH
<td>
-O
</td>
<td>
-O
</td>
</tr>
<tr>
<th>
bench
</td>
<td>
-O
<br>
-H64m
</td>
<td>
-O
<br>
-H64m
</td>
<td></td>
<td>
-O2
</td>
<td>
-O2
</td>
<td>
-O0
</td>
<td>
-O2
</td>
<td>
-O2
</td>
</tr>
<tr>
<th>
devel1
</td>
<td>
-O
<br>
-H64m
</td>
...
...
@@ -109,41 +120,16 @@ when compiling the `compiler` library, and `hsGhc` when compiling/linking the GH
<td></td>
<td>
-O0
<br>
-DDEBUG
</td>
</tr>
<tr>
<th>
quick-llvm
</td>
<td>
-O0
<br>
-H64m
<br>
-fllvm
</td>
<td>
-O0
<br>
-H64m
<br>
-fllvm
</td>
<td></td>
<td>
-O
</td>
<td>
-O
</td>
<td></td>
<td>
-O
</td>
<td></td>
</tr>
<tr>
<th>
perf-llvm
</td>
<td>
-O
<br>
-H64m
<br>
-fllvm
</td>
<td>
-O
<br>
-H64m
<br>
-fllvm
</td>
<td></td>
<td>
-O2
</td>
<td>
-O
</td>
<td>
-O2
</td>
<td>
-O
</td>
<td>
-O2
</td>
</tr>
<tr>
<th>
prof-llvm
</td>
<td>
-O0
<br>
-H64m
<br>
-fllvm
</td>
<td>
-O0
<br>
-H64m
<br>
-fllvm
</td>
<td></td>
<td>
-O
</td>
<td>
-O
</td>
<td>
-O
</td>
<td>
-O
</td>
<td>
-O
</td>
</tr>
</table>
### LLVM variants
In addition to the above, there are LLVM variants for the flavours
`quick`
,
`prof`
,
`perf`
and
`bench`
, available by appending a
`-llvm`
suffix (i.e.,
`quick-llvm`
for the LLVM variant of
`quick`
). These differ only in that there
is an additional
`-fllvm`
flag in
`hsDefault`
when the stage0 compiler is GHC.
See
`src/Settings/Flavours/Llvm.hs`
for details.
## Ways
Libraries and GHC can be built in different _ways_, e.g. with or without profiling
...
...
@@ -197,7 +183,7 @@ information. The following table lists ways that are built in different flavours
<td>
No
</td>
</tr>
<tr>
<th>
quickest
</th>
<th>
quickest
<
br>
bench
<
/th>
<td>
vanilla
</td>
<td>
vanilla
</td>
<td>
vanilla
<br>
threaded
</td>
...
...
hadrian/hadrian.cabal
View file @
646e3dc2
...
...
@@ -89,6 +89,7 @@ executable hadrian
, Settings.Builders.RunTest
, Settings.Builders.Xelatex
, Settings.Default
, Settings.Flavours.Benchmark
, Settings.Flavours.Common
, Settings.Flavours.Development
, Settings.Flavours.Llvm
...
...
hadrian/src/Settings.hs
View file @
646e3dc2
...
...
@@ -11,6 +11,7 @@ import Packages
import
UserSettings
(
userFlavours
,
userPackages
,
userDefaultFlavour
)
import
{-#
SOURCE
#-
}
Settings
.
Default
import
Settings.Flavours.Benchmark
import
Settings.Flavours.Development
import
Settings.Flavours.Llvm
import
Settings.Flavours.Performance
...
...
@@ -36,9 +37,9 @@ stagePackages stage = do
hadrianFlavours
::
[
Flavour
]
hadrianFlavours
=
[
defaultFlavour
,
developmentFlavour
Stage1
,
developmentFlavour
Stage2
,
performanceFlavour
,
profiledFlavour
,
quickFlavour
,
quickest
Flavour
,
quick
Cross
Flavour
[
benchmarkFlavour
,
defaultFlavour
,
developmentFlavour
Stage1
,
developmentFlavour
Stage2
,
performanceFlavour
,
profiled
Flavour
,
quick
Flavour
,
quickestFlavour
,
quickCrossFlavour
,
benchmarkLlvm
Flavour
,
performanceLlvmFlavour
,
profiledLlvmFlavour
,
quickLlvmFlavour
,
ghcInGhciFlavour
]
...
...
hadrian/src/Settings/Flavours/Benchmark.hs
0 → 100644
View file @
646e3dc2
module
Settings.Flavours.Benchmark
(
benchmarkFlavour
)
where
import
Expression
import
Flavour
import
{-#
SOURCE
#-
}
Settings
.
Default
-- Please update doc/flavours.md when changing this file.
benchmarkFlavour
::
Flavour
benchmarkFlavour
=
defaultFlavour
{
name
=
"bench"
,
args
=
defaultBuilderArgs
<>
benchmarkArgs
<>
defaultPackageArgs
,
libraryWays
=
pure
[
vanilla
]
,
rtsWays
=
pure
[
vanilla
,
threaded
]
}
benchmarkArgs
::
Args
benchmarkArgs
=
sourceArgs
SourceArgs
{
hsDefault
=
pure
[
"-O"
,
"-H64m"
]
,
hsLibrary
=
pure
[
"-O2"
]
-- TODO: We should really pass -O2 when notStage0. Otherwise, we aren't
-- really measuring the overhead of a potential new optimisation we want
-- to benchmark. This has to happen in sync with the Makefile build, though.
,
hsCompiler
=
mconcat
[
stage0
?
arg
"-O2"
,
notStage0
?
arg
"-O0"
]
,
hsGhc
=
pure
[
"-O2"
]
}
hadrian/src/Settings/Flavours/Llvm.hs
View file @
646e3dc2
module
Settings.Flavours.Llvm
(
benchmarkLlvmFlavour
,
performanceLlvmFlavour
,
profiledLlvmFlavour
,
quickLlvmFlavour
,
...
...
@@ -7,12 +8,14 @@ module Settings.Flavours.Llvm (
import
Expression
import
Flavour
import
Settings.Flavours.Benchmark
import
Settings.Flavours.Performance
import
Settings.Flavours.Profiled
import
Settings.Flavours.Quick
-- Please update doc/flavours.md when changing this file.
performanceLlvmFlavour
,
profiledLlvmFlavour
,
quickLlvmFlavour
::
Flavour
benchmarkLlvmFlavour
,
performanceLlvmFlavour
,
profiledLlvmFlavour
,
quickLlvmFlavour
::
Flavour
benchmarkLlvmFlavour
=
mkLlvmFlavour
benchmarkFlavour
performanceLlvmFlavour
=
mkLlvmFlavour
performanceFlavour
profiledLlvmFlavour
=
mkLlvmFlavour
profiledFlavour
quickLlvmFlavour
=
mkLlvmFlavour
quickFlavour
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment