[GHC] #8173: GHC uses nub
GHC
ghc-devs at haskell.org
Thu Sep 26 11:07:31 CEST 2013
#8173: GHC uses nub
-------------------------------------+-------------------------------------
Reporter: nh2 | Owner: leroux
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.6.3
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: Compile-time | Difficulty: Moderate (less
performance bug | than a day)
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+-------------------------------------
Comment (by leroux):
Patch: attachment:ordNub-analysis (just an initial point to start at)
Based on nofib-analyse attachment:ordNub-analysis, it seems that it may
be a good idea to selectively replace `nub`'s where it is applied over
larger lists so that it cuts down on overhead.
Snippet from nofib-analysis
{{{
--------------------------------------------------------------------------------
Program Size Allocs Runtime Elapsed TotalMem
--------------------------------------------------------------------------------
anna +0.0% +0.0% 0.11 0.12 +0.0%
ansi +0.0% +0.0% 0.00 0.00 +0.0%
atom +0.0% +0.0% -0.9% -0.4% +0.0%
awards +0.0% +0.0% 0.00 0.00 +0.0%
banner +0.0% +0.0% 0.00 0.00 +0.0%
bernouilli +0.0% +0.0% 0.17 0.18 +0.0%
binary-trees +0.0% +0.0% -7.3% -8.8% +0.0%
boyer +0.0% +0.0% 0.04 0.05 +0.0%
boyer2 +0.0% +0.0% 0.00 0.00 +0.0%
bspt -0.1% +0.0% 0.00 0.01 +0.0%
cacheprof +0.1% +0.0% -3.2% -2.1% +0.9%
calendar +0.0% +0.0% 0.00 0.00 +0.0%
cichelli +0.0% +0.0% 0.08 0.09 +0.0%
circsim +0.0% +0.0% +6.0% +6.1% +0.0%
clausify +0.0% +0.0% 0.04 0.05 +0.0%
comp_lab_zift +0.0% +0.0% 0.20 +5.0% +0.0%
compress +0.0% +0.0% 0.17 0.18 +0.0%
compress2 +0.0% +0.0% 0.16 0.17 +0.0%
constraints +0.0% +0.0% +1.7% +2.0% +0.0%
cryptarithm1 +0.0% +0.0% -2.5% -2.4% +0.0%
cryptarithm2 +0.0% +0.0% 0.01 0.01 +0.0%
cse +0.0% +0.0% 0.00 0.00 +0.0%
eliza +0.0% +0.0% 0.00 0.00 +0.0%
event +0.0% +0.0% 0.14 0.15 +0.0%
exp3_8 -0.1% +0.0% +1.9% +1.8% +0.0%
expert +0.0% +0.0% 0.00 0.00 +0.0%
fannkuch-redux -0.1% +0.0% +0.9% +1.0% +0.0%
fasta -0.1% +0.0% +2.7% +4.5% +0.0%
fem +0.0% +0.0% 0.02 0.03 +0.0%
fft -0.1% +0.0% 0.03 0.04 +0.0%
fft2 +0.0% +0.0% 0.05 0.05 +0.0%
fibheaps +0.1% +0.0% 0.03 0.03 +0.0%
fish +0.0% +0.0% 0.01 0.02 +0.0%
fluid +0.0% +0.0% 0.01 0.01 +0.0%
fulsom +0.1% +0.0% +1.3% +3.2% -1.3%
gamteb +0.0% +0.0% 0.05 0.05 +0.0%
gcd +0.0% +0.0% 0.03 0.03 +0.0%
gen_regexps +0.0% +0.0% 0.00 0.00 +0.0%
genfft -0.1% +0.0% 0.03 0.03 +0.0%
gg +0.0% +0.0% 0.00 0.02 +0.0%
grep +0.0% +0.0% 0.00 0.00 +0.0%
hidden +0.0% +0.0% +2.5% +1.9% +0.0%
hpg +0.0% +0.0% 0.10 +1.8% +0.0%
ida +0.0% +0.0% 0.08 0.08 +0.0%
infer +0.0% +0.0% 0.06 0.07 +0.0%
integer +0.0% +0.0% +0.2% +0.0% +0.0%
integrate +0.0% +0.0% 0.16 0.20 +0.0%
k-nucleotide -0.1% +0.0% +3.3% +5.5% +0.0%
kahan +0.0% +0.0% 0.17 0.17 +0.0%
knights +0.0% +0.0% 0.00 0.01 +0.0%
lcss +0.0% +0.0% -2.4% -2.2% +0.0%
life +0.0% +0.0% -5.2% -8.5% +0.0%
lift +0.0% +0.0% 0.00 0.00 +0.0%
listcompr +0.0% +0.0% 0.07 0.08 +0.0%
listcopy +0.0% +0.0% 0.07 0.09 +0.0%
maillist +0.0% -0.0% 0.05 -8.1% +10.0%
mandel +0.0% +0.0% 0.06 0.07 +0.0%
mandel2 +0.0% +0.0% 0.00 0.00 +0.0%
minimax +0.0% +0.0% 0.00 0.00 +0.0%
mkhprog +0.0% +0.0% 0.00 0.00 +0.0%
multiplier +0.0% +0.0% 0.11 0.12 +0.0%
n-body +0.0% +0.0% +19.0% +22.2% +0.0%
nucleic2 +0.0% +0.0% 0.06 0.07 +0.0%
para +0.0% +0.0% -4.5% -3.1% +0.0%
paraffins +0.0% +0.0% 0.11 0.12 +0.0%
parser +0.0% +0.0% 0.03 0.03 +0.0%
parstof +0.0% +0.0% 0.00 0.00 +0.0%
pic +0.0% +0.0% 0.00 0.00 +0.0%
pidigits +0.0% +0.0% +2.3% +1.7% +0.0%
power +0.0% +0.0% +3.4% +4.2% +0.0%
pretty +0.0% +0.0% 0.00 0.00 +0.0%
primes +0.0% +0.0% 0.06 0.07 +0.0%
primetest +0.0% +0.0% 0.11 0.11 +0.0%
prolog +0.0% +0.0% 0.00 0.01 +0.0%
puzzle +0.0% +0.0% 0.14 0.15 +0.0%
queens +0.0% +0.0% 0.01 0.02 +0.0%
reptile +0.0% +0.0% 0.00 0.01 +0.0%
reverse-complem +0.0% +0.0% 0.10 0.17 +0.0%
rewrite +0.0% +0.0% 0.01 0.02 +0.0%
rfib +0.0% +0.0% 0.01 0.01 +0.0%
rsa +0.1% +0.0% 0.02 0.03 +0.0%
scc +0.0% +0.0% 0.00 0.00 +0.0%
sched +0.0% +0.0% 0.01 0.02 +0.0%
scs +0.0% +0.0% -25.4% -32.2% +0.0%
simple +0.0% +0.0% +0.0% -0.7% +0.0%
solid +0.0% +0.0% 0.16 0.16 +0.0%
sorting +0.0% +0.0% 0.00 0.00 +0.0%
spectral-norm +0.0% +0.0% -0.4% -0.1% +0.0%
sphere +0.0% +0.0% 0.04 0.05 +0.0%
symalg +0.0% +0.0% 0.01 0.01 +0.0%
tak +0.0% +0.0% 0.01 0.01 +0.0%
transform +0.0% +0.0% +2.5% +1.8% +0.0%
treejoin +0.0% +0.0% 0.15 0.17 +0.0%
typecheck +0.1% +0.0% +1.0% +1.9% +0.0%
veritas +0.0% +0.0% 0.00 0.01 +0.0%
wang +0.1% +0.0% 0.13 0.14 +0.0%
wave4main +0.0% +0.0% +3.0% +7.3% +0.0%
wheel-sieve1 +0.0% +0.0% -1.1% -1.6% +0.0%
wheel-sieve2 +0.0% +0.0% 0.21 +5.6% +0.0%
x2n1 -0.1% +0.0% 0.00 0.01 +0.0%
--------------------------------------------------------------------------------
Min -0.1% -0.0% -25.4% -32.2% -1.3%
Max +0.1% +0.0% +19.0% +22.2% +10.0%
Geometric Mean -0.0% -0.0% -0.3% -0.1% +0.1%
}}}
There's more work to be done!
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8173#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list