[GHC] #7206: Implement cheap build
GHC
cvs-ghc at haskell.org
Wed Feb 13 09:56:22 CET 2013
#7206: Implement cheap build
---------------------------------+------------------------------------------
Reporter: simonpj | Owner: simonpj
Type: bug | Status: new
Priority: normal | Milestone: _|_
Component: Compiler | Version: 7.4.2
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Changes (by simonpj):
* milestone: 7.8.1 => _|_
Comment:
I tried this again, but got disappointing results:
{{{
--------------------------------------------------------------------------------
Program Size Allocs Runtime Elapsed TotalMem
--------------------------------------------------------------------------------
anna -0.4% +0.0% -6.3% -5.9% +0.0%
ansi -0.2% -0.6% 0.00 0.00 +0.0%
atom -0.1% +0.0% +2.0% +2.0% +0.0%
awards -0.4% +0.0% 0.00 0.00 +0.0%
banner -0.1% +0.0% 0.00 0.00 +0.0%
bernouilli -0.0% +0.0% -1.6% -1.6% +0.0%
binary-trees -0.2% +0.0% +4.4% +4.4% +0.0%
boyer -0.2% +0.0% 0.07 0.07 +0.0%
boyer2 -0.5% +0.0% 0.01 0.01 +0.0%
bspt -0.3% +0.0% 0.02 0.02 +0.0%
cacheprof -1.4% +0.2% -0.7% -0.9% -0.5%
calendar -0.2% +0.0% 0.00 0.00 +0.0%
cichelli -0.4% -0.0% 0.13 0.13 +0.0%
circsim -0.2% +0.0% -4.6% -4.7% +0.0%
clausify -0.2% +0.0% 0.06 0.06 +0.0%
comp_lab_zift -0.2% +0.0% -2.6% -2.6% +0.0%
compress -0.3% +0.0% +3.0% +3.7% +0.0%
compress2 -0.1% +0.0% +1.3% +1.3% +0.0%
constraints -0.2% +0.0% -3.9% -3.9% +0.0%
cryptarithm1 -0.2% +0.0% +6.3% +6.3% +0.0%
cryptarithm2 -0.5% +0.0% 0.02 0.02 +0.0%
cse -0.5% +0.0% 0.00 0.00 +0.0%
eliza -0.1% +0.0% 0.00 0.00 +0.0%
event -0.2% +0.0% +2.9% +2.9% +0.0%
exp3_8 -0.2% +0.0% -2.8% -2.8% +0.0%
expert -0.1% +0.0% 0.00 0.00 +0.0%
fannkuch-redux -0.1% +0.0% -2.4% -2.4% +0.0%
fasta -0.2% +0.0% -0.4% -0.4% +0.0%
fem -0.0% +0.0% 0.04 0.04 +0.0%
fft -0.1% +0.0% 0.06 0.06 +0.0%
fft2 -0.1% +0.0% 0.10 0.10 +0.0%
fibheaps -0.2% +0.0% 0.05 0.05 +0.0%
fish -0.1% +2.7% 0.03 0.03 +0.0%
fluid -0.1% +0.2% 0.01 0.01 +100.0%
fulsom -0.3% +0.0% -4.0% -4.0% +3.2%
gamteb -0.1% -0.0% 0.07 0.07 +0.0%
gcd -0.1% +0.0% 0.05 0.05 +0.0%
gen_regexps -0.1% +0.0% 0.00 0.00 +0.0%
genfft -0.1% +0.0% 0.06 0.06 +0.0%
gg -0.5% +0.1% 0.02 0.02 +0.0%
grep -0.1% +0.0% 0.00 0.00 +0.0%
hidden -0.1% +0.0% +4.2% +4.2% +0.0%
hpg -0.4% -0.2% +8.8% +8.8% +0.0%
ida -0.2% +0.0% 0.14 0.14 +0.0%
infer -0.3% +0.0% 0.13 0.13 +0.0%
integer -0.1% +0.0% +0.1% +0.1% +0.0%
integrate -0.1% +0.0% +18.2% +18.2% +0.0%
k-nucleotide -0.1% +0.0% -6.2% -6.2% +0.0%
kahan -0.1% +0.0% +1.1% +1.1% +0.0%
knights -0.2% +1.4% 0.01 0.01 +0.0%
lcss -0.2% +0.0% -3.5% -3.5% +0.0%
life -0.2% +0.0% +2.5% +2.5% +0.0%
lift -0.3% +0.0% 0.00 0.00 +0.0%
listcompr -0.2% +0.0% 0.15 0.15 +0.0%
listcopy -0.2% +0.0% 0.16 0.16 +0.0%
maillist -0.3% +0.0% 0.10 0.11 -3.9%
mandel -0.0% -0.0% 0.12 0.12 +0.0%
mandel2 -0.5% +0.0% 0.00 0.00 +0.0%
minimax -0.3% +0.0% 0.00 0.00 +0.0%
mkhprog -0.2% +0.0% 0.00 0.00 +0.0%
multiplier -0.3% +0.0% +1.8% +1.8% +0.0%
n-body -0.2% +0.0% -0.7% -0.6% +0.0%
nucleic2 -0.1% +0.0% 0.11 0.11 +0.0%
para -0.0% +0.0% +1.4% +0.8% +0.0%
paraffins -0.2% +0.0% +13.6% +13.6% +0.0%
parser -1.3% +3.5% 0.05 0.05 +0.0%
parstof -0.3% +0.0% 0.01 0.01 +0.0%
pic -0.1% +0.1% 0.00 0.00 +0.0%
pidigits -0.1% +0.0% +1.5% +1.9% +0.0%
power -0.1% +0.0% -4.9% -4.9% +0.0%
pretty -0.1% -0.0% 0.00 0.00 +0.0%
primes -0.1% +0.0% 0.11 0.11 +0.0%
primetest -0.0% +0.0% 0.14 0.14 +0.0%
prolog -0.2% +0.1% 0.00 0.17 +0.0%
puzzle -0.3% +0.0% +1.7% +1.7% +0.0%
queens -0.2% +0.0% 0.02 0.02 +0.0%
reptile -0.2% -0.0% 0.02 0.02 +0.0%
reverse-complem -0.3% +0.0% +3.8% +3.8% +0.0%
rewrite -0.2% +0.0% 0.02 0.02 +0.0%
rfib -0.1% +0.0% 0.03 0.03 +0.0%
rsa -0.0% +0.0% 0.03 0.12 +0.0%
scc -0.2% +0.0% 0.00 0.00 +0.0%
sched -0.2% +0.0% 0.03 0.03 +0.0%
scs -0.0% +0.1% -2.9% -3.1% +0.0%
simple -0.9% +0.6% -10.8% -10.8% +13.8%
solid -0.1% +0.0% +3.2% +3.2% +0.0%
sorting -0.1% +0.0% 0.00 0.00 +0.0%
spectral-norm -0.2% +0.0% +0.1% +0.1% +0.0%
sphere -0.2% +0.0% 0.08 0.08 +0.0%
symalg -0.2% +0.0% 0.01 0.04 +0.0%
tak -0.2% +0.0% 0.02 0.02 +0.0%
transform -0.2% +0.0% -0.6% -0.6% +0.0%
treejoin -0.2% +0.0% +0.0% -0.7% +0.0%
typecheck -0.2% -0.0% +0.0% +0.0% +0.0%
veritas +0.7% +0.0% 0.00 0.00 +0.0%
wang -0.1% +0.0% -5.5% -5.5% +0.0%
wave4main -0.2% +0.0% -2.4% -2.4% +0.0%
wheel-sieve1 -0.1% +0.0% -0.5% -0.5% +0.0%
wheel-sieve2 -0.1% +0.0% -6.4% -6.4% +0.0%
x2n1 -0.2% +0.0% 0.00 0.00 +0.0%
--------------------------------------------------------------------------------
Min -1.4% -0.6% -10.8% -10.8% -3.9%
Max +0.7% +3.5% +18.2% +18.2% +100.0%
Geometric Mean -0.2% +0.1% +0.1% +0.1% +0.8%
}}}
On investigation it seemed that although it was good to fuse away the
intermediate ''lists'', we were duplicating the individual `Int`s or
`Char`s that would otherwise have been shared, and this pushes up
allocation. So we often lose a bit and seldom win much.
So I'm parking this again. I attach the patches I used.
Simon
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7206#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list