I've now added the shootout programs that could be added without modifying the programs itself. I described why some programs weren't added in nofib/shootout/README.<div><br></div><div>For the curious, here's the change in these benchmarks from 7.0.4 to 7.6.2:</div>
<div><br></div><div><div><font face="courier new, monospace">--------------------------------------------------------------------------------</font></div><div><font face="courier new, monospace"> Program Size Allocs Runtime Elapsed TotalMem</font></div>
<div><font face="courier new, monospace">--------------------------------------------------------------------------------</font></div><div><font face="courier new, monospace"> binary-trees +2.6% -0.6% -2.8% -2.8% -22.3%</font></div>
<div><font face="courier new, monospace"> fannkuch-redux +1.4%+11514445. +0.2% +0.2% +0.0%</font></div><div><font face="courier new, monospace"> n-body +3.8% +0.0% +4.4% +4.4% +0.0%</font></div>
<div><font face="courier new, monospace"> pidigits +2.2% -6.9% -1.7% -1.2% -20.0%</font></div><div><font face="courier new, monospace"> spectral-norm +2.1% -61.3% -54.8% -54.8% +0.0%</font></div>
<div><font face="courier new, monospace">--------------------------------------------------------------------------------</font></div><div><font face="courier new, monospace"> Min +1.4% -61.3% -54.8% -54.8% -22.3%</font></div>
<div><font face="courier new, monospace"> Max +3.8%+11514445. +4.4% +4.4% +0.0%</font></div><div><font face="courier new, monospace"> Geometric Mean +2.4% +737.6% -14.7% -14.6% -9.1%</font></div>
<div><br></div></div><div>Some interesting differences here (and some really good ones)!</div><div><br></div><div>I looked into fannkuch-redux (nofib/shootout/fannkuch-redux) and confirmed the allocation difference:</div>
<div><br></div><div><div>7.0.4:</div><div><br></div><div><font face="courier new, monospace"> 93,680 bytes allocated in the heap</font></div><div><font face="courier new, monospace"> 2,880 bytes copied during GC</font></div>
<div><font face="courier new, monospace"> 43,784 bytes maximum residency (1 sample(s))</font></div><div><font face="courier new, monospace"> 21,752 bytes maximum slop</font></div><div><font face="courier new, monospace"> 1 MB total memory in use (0 MB lost due to fragmentation)</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> Generation 0: 0 collections, 0 parallel, 0.00s, 0.00s elapsed</font></div><div><font face="courier new, monospace"> Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> INIT time 0.00s ( 0.00s elapsed)</font></div><div><font face="courier new, monospace"> MUT time 38.53s ( 38.56s elapsed)</font></div>
<div><font face="courier new, monospace"> GC time 0.00s ( 0.00s elapsed)</font></div><div><font face="courier new, monospace"> EXIT time 0.00s ( 0.00s elapsed)</font></div><div><font face="courier new, monospace"> Total time 38.53s ( 38.56s elapsed)</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> %GC time 0.0% (0.0% elapsed)</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> Alloc rate 2,431 bytes per MUT second</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> Productivity 100.0% of total user, 99.9% of total elapsed</font></div></div><div><br></div><div>7.6.2:</div><div><br></div>
<div><div><font face="courier new, monospace"> 10,538,113,312 bytes allocated in the heap</font></div><div><font face="courier new, monospace"> 819,304 bytes copied during GC</font></div><div><font face="courier new, monospace"> 44,416 bytes maximum residency (2 sample(s))</font></div>
<div><font face="courier new, monospace"> 25,216 bytes maximum slop</font></div><div><font face="courier new, monospace"> 1 MB total memory in use (0 MB lost due to fragmentation)</font></div><div>
<font face="courier new, monospace"><br>
</font></div><div><font face="courier new, monospace"> Tot time (elapsed) Avg pause Max pause</font></div><div><font face="courier new, monospace"> Gen 0 20177 colls, 0 par 0.06s 0.05s 0.0000s 0.0000s</font></div>
<div><font face="courier new, monospace"> Gen 1 2 colls, 0 par 0.00s 0.00s 0.0001s 0.0002s</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> INIT time 0.00s ( 0.00s elapsed)</font></div>
<div><font face="courier new, monospace"> MUT time 38.76s ( 38.82s elapsed)</font></div><div><font face="courier new, monospace"> GC time 0.06s ( 0.05s elapsed)</font></div><div><font face="courier new, monospace"> EXIT time 0.00s ( 0.00s elapsed)</font></div>
<div><font face="courier new, monospace"> Total time 38.83s ( 38.88s elapsed)</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> %GC time 0.2% (0.1% elapsed)</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> Alloc rate 271,864,153 bytes per MUT second</font></div><div><font face="courier new, monospace"><br></font></div><div>
<font face="courier new, monospace"> Productivity 99.8% of total user, 99.7% of total elapsed</font></div></div><div><br></div><div>We're going from a essentially non-allocation program to an allocating one.</div><div>
<br></div><div>Aside: I didn't use -fllvm, which is what the shootout normally uses.</div><div><br></div><div>-- Johan</div><div><br></div>