<div dir="ltr"><div>Thanks for such specific requests, and great idea to focus on imaginary!</div><div> </div><div>Outline: SUMMARY, HARDWARE, NUMBERS</div><div> </div><div><div>== THE SUMMARY ==</div> </div><div>  * I still get quite different numbers.</div>

<div>    * For wheel-sieve1 and kahan, we&#39;re in the same ballpark.</div><div>    * Though my kahan shows half as much allocation increase. Which hardware difference would explain this?</div><div>    * For bernoiulli, exp3_8, and integrate, my nofib-analyse shows percent changes in Runtime, where as yours shows absolutes. I&#39;ve included my absolute tables below; comparing those, we still get appreciable differences.</div>

<div> </div><div>  * I&#39;ve included my mode=slow numbers.</div><div> </div><div>  * We have some significant hardware differences.</div><div>    * My machine claims 32 processors, though it smells like it has 8 chips with 8 cores each. I&#39;ll ask SPJ or Mainland.</div>

<div>    * My cache size is much smaller than yours: 512 KB versus 8 MB.</div><div>    * My CPU frequency is 2GHz compared to your 3.4GHz.</div><div> </div><div>  * How do we want to handle hardware diversity like we&#39;re seeing in these regular benchmark runs?</div>

<div>    * Are the different behaviors we&#39;re seeing expected for our hardware differences or bugs of some sort?</div><div> </div><div>Thanks, Johan.</div><div> </div><div>== THE HARDWARE ==</div><div> </div><div><font face="courier new,monospace">$ cat /proc/cpuinfo</font></div>

<font face="courier new,monospace"><div>processor : 0 # counts up to 31, with physical id and core id pairs duplicated once<br>vendor_id : AuthenticAMD<br>cpu family : 16<br>model  : 9<br>model name : AMD Opteron(tm) Processor 6128<br>

stepping : 1<br>microcode : 0x10000d4<br>cpu MHz  : 1999.949<br>cache size : 512 KB</div></font><div><font face="courier new,monospace">physical id : 0 # counts up to 3 for each core id, twice</font></div><div><font face="courier new,monospace">siblings : 8<br>

core id  : 0 # counts up to 3, for each physical id, twice</font></div><div><font face="courier new,monospace">cpu cores : 8</font></div><div><font face="courier new,monospace">apicid  : 0 # varies<br>initial apicid : 0 # varies<br>

fpu  : yes<br>fpu_exception : yes<br>cpuid level : 5<br>wp  : yes<br>flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr npt lbrv svm_lock nrip_save pausefilter<br>

bogomips : 3999.89<br>TLB size : 1024 4K pages<br>clflush size : 64<br>cache_alignment : 64<br>address sizes : 48 bits physical, 48 bits virtual<br>power management: ts ttp tm stc 100mhzsteps hwpstate </font></div><div> </div>

<div>physical id and core id exhaust combinations of {0,1,2,3}, twice for some reason as processor counts from 0 to 31. I would have suspected 64 processors, given the sibling and cpu cores. Am I tripping on a common misconception?</div>

<div> </div><div>I included the rest of the info because I still get different numbers than you do.</div><div> </div><div><font face="courier new,monospace">$ uname -a</font></div><div><font face="courier new,monospace">Linux cam-05-unx 3.2.0-35-generic #55-Ubuntu SMP Wed Dec 5 17:42:16 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux</font></div>

<div><font face="courier new,monospace"> </font></div><div><font face="courier new,monospace">$ VERSION=7.0.4; HC=/home/t-nicof/installs/ghc-${VERSION}/bin/ghc-${VERSION}; $HC --info<br> [(&quot;Project name&quot;,&quot;The Glorious Glasgow Haskell Compilation System&quot;)<br>

 ,(&quot;Project version&quot;,&quot;7.0.4&quot;)<br> ,(&quot;Booter version&quot;,&quot;6.12.1&quot;)<br> ,(&quot;Stage&quot;,&quot;2&quot;)<br> ,(&quot;Build platform&quot;,&quot;x86_64-unknown-linux&quot;)<br> ,(&quot;Host platform&quot;,&quot;x86_64-unknown-linux&quot;)<br>

 ,(&quot;Target platform&quot;,&quot;x86_64-unknown-linux&quot;)<br> ,(&quot;Have interpreter&quot;,&quot;YES&quot;)<br> ,(&quot;Object splitting&quot;,&quot;YES&quot;)<br> ,(&quot;Have native code generator&quot;,&quot;YES&quot;)<br>

 ,(&quot;Have llvm code generator&quot;,&quot;YES&quot;)<br> ,(&quot;Support SMP&quot;,&quot;YES&quot;)<br> ,(&quot;Unregisterised&quot;,&quot;NO&quot;)<br> ,(&quot;Tables next to code&quot;,&quot;YES&quot;)<br> ,(&quot;RTS ways&quot;,&quot;l debug  thr thr_debug thr_l thr_p  dyn debug_dyn thr_dyn thr_debug_dyn&quot;)<br>

 ,(&quot;Leading underscore&quot;,&quot;NO&quot;)<br> ,(&quot;Debug on&quot;,&quot;False&quot;)<br> ,(&quot;LibDir&quot;,&quot;/home/t-nicof/installs/ghc-7.0.4/lib/ghc-7.0.4&quot;)<br> ,(&quot;Global Package DB&quot;,&quot;/home/t-nicof/installs/ghc-7.0.4/lib/ghc-7.0.4/package.conf.d&quot;)<br>

 ,(&quot;C compiler flags&quot;,&quot;[\&quot;-fno-stack-protector\&quot;]&quot;)<br> ,(&quot;Gcc Linker flags&quot;,&quot;[]&quot;)<br> ,(&quot;Ld Linker flags&quot;,&quot;[]&quot;)</font></div><div><font face="Courier New"></font> </div>

<div><font face="Courier New">$ VERSION=7.6.2; HC=/home/t-nicof/installs/ghc-${VERSION}/bin/ghc-${VERSION}; $HC --info<br> [(&quot;Project name&quot;,&quot;The Glorious Glasgow Haskell Compilation System&quot;)<br> ,(&quot;GCC extra via C opts&quot;,&quot; -fwrapv&quot;)<br>

 ,(&quot;C compiler command&quot;,&quot;/usr/bin/gcc&quot;)<br> ,(&quot;C compiler flags&quot;,&quot; -fno-stack-protector &quot;)<br> ,(&quot;ar command&quot;,&quot;/usr/bin/ar&quot;)<br> ,(&quot;ar flags&quot;,&quot;q&quot;)<br>

 ,(&quot;ar supports at file&quot;,&quot;@ArSupportsAtFile@&quot;)<br> ,(&quot;touch command&quot;,&quot;touch&quot;)<br> ,(&quot;dllwrap command&quot;,&quot;/bin/false&quot;)<br> ,(&quot;windres command&quot;,&quot;/bin/false&quot;)<br>

 ,(&quot;perl command&quot;,&quot;/usr/bin/perl&quot;)<br> ,(&quot;target os&quot;,&quot;OSLinux&quot;)<br> ,(&quot;target arch&quot;,&quot;ArchX86_64&quot;)<br> ,(&quot;target word size&quot;,&quot;8&quot;)<br> ,(&quot;target has GNU nonexec stack&quot;,&quot;True&quot;)<br>

 ,(&quot;target has .ident directive&quot;,&quot;True&quot;)<br> ,(&quot;target has subsections via symbols&quot;,&quot;False&quot;)<br> ,(&quot;LLVM llc command&quot;,&quot;llc&quot;)<br> ,(&quot;LLVM opt command&quot;,&quot;opt&quot;)<br>

 ,(&quot;Project version&quot;,&quot;7.6.2&quot;)<br> ,(&quot;Booter version&quot;,&quot;7.4.1&quot;)<br> ,(&quot;Stage&quot;,&quot;2&quot;)<br> ,(&quot;Build platform&quot;,&quot;x86_64-unknown-linux&quot;)<br> ,(&quot;Host platform&quot;,&quot;x86_64-unknown-linux&quot;)<br>

 ,(&quot;Target platform&quot;,&quot;x86_64-unknown-linux&quot;)<br> ,(&quot;Have interpreter&quot;,&quot;YES&quot;)<br> ,(&quot;Object splitting supported&quot;,&quot;YES&quot;)<br> ,(&quot;Have native code generator&quot;,&quot;YES&quot;)<br>

 ,(&quot;Support SMP&quot;,&quot;YES&quot;)<br> ,(&quot;Unregisterised&quot;,&quot;NO&quot;)<br> ,(&quot;Tables next to code&quot;,&quot;YES&quot;)<br> ,(&quot;RTS ways&quot;,&quot;l debug  thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn&quot;)<br>

 ,(&quot;Leading underscore&quot;,&quot;NO&quot;)<br> ,(&quot;Debug on&quot;,&quot;False&quot;)<br> ,(&quot;LibDir&quot;,&quot;/home/t-nicof/installs/ghc-7.6/lib/ghc-7.6.2&quot;)<br> ,(&quot;Global Package DB&quot;,&quot;/home/t-nicof/installs/ghc-7.6/lib/ghc-7.6.2/package.conf.d&quot;)<br>

 ,(&quot;Gcc Linker flags&quot;,&quot;[\&quot;-Wl,--hash-size=31\&quot;,\&quot;-Wl,--reduce-memory-overheads\&quot;]&quot;)<br> ,(&quot;Ld Linker flags&quot;,&quot;[\&quot;--hash-size=31\&quot;,\&quot;--reduce-memory-overheads\&quot;]&quot;)<br>

 ]</font></div><div> </div><div>== THE NUMBERS ==</div><div> </div><div><font face="arial,helvetica,sans-serif">With VERSION=7.0.4 or VERSION=7.6.2. (I&#39;m not relying on $PATH, is the only difference.)</font></div><div>

<font face="courier new,monospace"></font> </div><div><font face="courier new,monospace">$ HC=/home/t-nicof/installs/ghc-${VERSION}/bin/ghc-${VERSION}; (make clean &amp;&amp; make boot WithNofibHc=${HC} &amp;&amp; make WithNofibHc=${HC}) &gt;&amp; log-${VERSION}</font></div>

<div><font face="Courier New"></font> </div><div><font face="courier new,monospace">--------------------------------------------------------------------------------<br>        Program           Size    Allocs   Runtime   Elapsed  TotalMem<br>

--------------------------------------------------------------------------------<br>     bernouilli          +3.3%     +0.2%     +7.2%     +7.4%     +0.0%<br>         exp3_8          +1.1%    +53.7%    +55.4%    +57.5%   +300.0%<br>

    gen_regexps         +18.6%     +3.9%      0.00      0.00     +0.0%<br>      integrate          -0.1%    +39.0%   +110.2%    +88.5%     +0.0%<br>          kahan          +1.7%    +41.8%     +8.2%     +8.0%     +0.0%<br>

      paraffins          +1.3%     -1.2%     -3.6%     -0.8%     +0.0%<br>         primes          +1.4%    +64.7%      0.11      0.11    +50.0%<br>         queens          +0.8%     -0.2%      0.02      0.02     +0.0%<br>

           rfib          +1.7%    +42.8%      0.03      0.03     +0.0%<br>            tak          +0.9%    +12.0%      0.02      0.02     +0.0%<br>   wheel-sieve1          +1.4%    +66.6%     -4.0%     -4.3%    -17.6%<br>

   wheel-sieve2          +1.4%     +0.0%     -0.2%     -2.1%     +0.0%<br>           x2n1         +10.3%    +41.7%      0.01      0.01   +200.0%<br>--------------------------------------------------------------------------------<br>

            Min          -0.1%     -1.2%     -4.0%     -4.3%    -17.6%<br>            Max         +18.6%    +66.6%   +110.2%    +88.5%   +300.0%<br> </font><font face="courier new,monospace">Geometric Mean          +3.3%    +25.6%    +19.6%    +18.1%    +23.0%</font></div>

<div> </div><div>I did it twice.</div><div> </div><div><font face="courier new,monospace">--------------------------------------------------------------------------------<br>        Program           Size    Allocs   Runtime   Elapsed  TotalMem<br>

--------------------------------------------------------------------------------<br>     bernouilli          +3.3%     +0.2%     +7.0%     +7.1%     +0.0%<br>         exp3_8          +1.1%    +53.7%    +56.6%    +57.8%   +300.0%<br>

    gen_regexps         +18.6%     +3.9%      0.00      0.00     +0.0%<br>      integrate          -0.1%    +39.0%   +102.1%    +86.2%     +0.0%<br>          kahan          +1.7%    +41.8%     +9.5%     +8.9%     +0.0%<br>

      paraffins          +1.3%     -1.2%     -0.6%     -4.8%     +0.0%<br>         primes          +1.4%    +64.7%      0.11      0.11    +50.0%<br>         queens          +0.8%     -0.2%      0.02      0.02     +0.0%<br>

           rfib          +1.7%    +42.8%      0.03      0.03     +0.0%<br>            tak          +0.9%    +12.0%      0.02      0.02     +0.0%<br>   wheel-sieve1          +1.4%    +66.6%     -4.4%     -4.3%    -17.6%<br>

   wheel-sieve2          +1.4%     +0.0%     -1.1%     -2.8%     +0.0%<br>           x2n1         +10.3%    +41.7%      0.01      0.01   +200.0%<br>--------------------------------------------------------------------------------<br>

            Min          -0.1%     -1.2%     -4.4%     -4.8%    -17.6%<br>            Max         +18.6%    +66.6%   +102.1%    +86.2%   +300.0%<br> Geometric Mean          +3.3%    +25.6%    +19.5%    +17.2%    +23.0%</font></div>

<div><font face="courier new,monospace"> </font></div><div><font face="arial,helvetica,sans-serif">Maybe your machine is too fast for nofib-analyse to include exp3_8.</font></div><div> </div><div><font face="courier new,monospace">Allocations</font></div>

<div><font face="courier new,monospace">-------------------------------------------------------------------------------<br>        Program            log-7.0.4       log-7.6.2<br>-------------------------------------------------------------------------------<br>

     bernouilli            303890616           +0.2%<br>         exp3_8            389023528          +53.7%<br>    gen_regexps               304768           +3.9%<br>      integrate            546206856          +39.0%<br>

          kahan            700842656          +41.8%<br>      paraffins             56201680           -1.2%<br>         primes             65899520          +64.7%<br>         queens             17387888           -0.2%<br>

           rfib                81176          +42.8%<br>            tak                94408          +12.0%<br>   wheel-sieve1             14620056          +66.6%<br>   wheel-sieve2             88734064           +0.0%<br>

           x2n1              2491928          +41.7%<br>        -1 s.d.                -----           +3.0%<br>        +1 s.d.                -----          +53.2%<br>        Average                -----          +25.6%</font></div>

<div><font face="courier new,monospace">Run Time</font></div><div><font face="courier new,monospace">-------------------------------------------------------------------------------<br>        Program            log-7.0.4       log-7.6.2<br>

-------------------------------------------------------------------------------<br>     bernouilli                 0.28           +7.2%<br>         exp3_8                 0.21          +55.4%<br>    gen_regexps                 0.00            0.00<br>

      integrate                 0.34         +110.2%<br>          kahan                 1.07           +8.2%<br>      paraffins                 0.22           -3.6%<br>         primes                 0.10            0.11<br>

         queens                 0.02            0.02<br>           rfib                 0.03            0.03<br>            tak                 0.01            0.02<br>   wheel-sieve1                 0.68           -4.0%<br>

   wheel-sieve2                 0.37           -0.2%<br>           x2n1                 0.00            0.01<br>        -1 s.d.                -----           -9.3%<br>        +1 s.d.                -----          +57.7%<br>

        Average                -----          +19.6%</font><br></div><div>And here are the results using the &quot;mode=slow&quot; Nofib option. Only bernouilli and gen_regexps do not have SLOW_OPTS defined in their Makefile. It&#39;s odd that gen_regexps shows such drastic change then...</div>

<div> </div><div><font face="courier new,monospace">--------------------------------------------------------------------------------<br>        Program           Size    Allocs   Runtime   Elapsed  TotalMem<br>--------------------------------------------------------------------------------<br>

     bernouilli          +3.3%     +0.2%     +6.7%     +7.4%     +0.0%<br>         exp3_8          +1.1%    +68.2%    +20.2%    +20.3%   +100.0%<br>    gen_regexps         +18.6%     -1.2%     -6.3%     -6.0%     +0.0%<br>

      integrate          -0.1%    +39.0%   +114.3%   +104.9%     +3.9%<br>          kahan          +1.7%    +41.9%     +7.5%     +7.5%     +0.0%<br>      paraffins          +1.3%     -1.2%     -3.3%     -2.7%     +0.3%<br>

         primes          +1.4%    +57.9%     +0.8%     +1.0%     +0.0%<br>         queens          +0.8%     -0.2%     -1.7%     -2.0%     +0.0%<br>           rfib          +1.7%    +42.8%     +6.3%     +6.0%     +0.0%<br>

            tak          +0.9%    +12.0%     -2.4%     -2.5%     +0.0%<br>   wheel-sieve1          +1.4%    +99.2%     -3.4%     -3.4%    +58.8%<br>   wheel-sieve2          +1.4%     -0.1%     -3.6%     -3.8%     +0.0%<br>

           x2n1         +10.3%    +43.1%      0.13      0.13  +1300.0%<br>--------------------------------------------------------------------------------<br>            Min          -0.1%     -1.2%     -6.3%     -6.0%     +0.0%<br>

            Max         +18.6%    +99.2%   +114.3%   +104.9%  +1300.0%<br> Geometric Mean          +3.3%    +27.4%     +8.2%     +7.8%    +34.3%</font></div><div><font face="courier new,monospace"></font> </div><div><font face="courier new,monospace">Allocations</font></div>

<div><font face="courier new,monospace">-------------------------------------------------------------------------------<br>        Program       log-slow-7.0.4  log-slow-7.6.2<br>-------------------------------------------------------------------------------<br>

     bernouilli            303890616           +0.2%<br>         exp3_8           3500234960          +68.2%<br>    gen_regexps            780759064           -1.2%<br>      integrate           1092338624          +39.0%<br>

          kahan           2797648296          +41.9%<br>      paraffins            363166288           -1.2%<br>         primes            861820872          +57.9%<br>         queens            569243336           -0.2%<br>

           rfib                81488          +42.8%<br>            tak                94408          +12.0%<br>   wheel-sieve1             24134568          +99.2%<br>   wheel-sieve2            160800936           -0.1%<br>

           x2n1             19375720          +43.1%<br>        -1 s.d.                -----           +1.2%<br>        +1 s.d.                -----          +60.4%<br>        Average                -----          +27.4%</font></div>

<div><font face="courier new,monospace"></font> </div><div><font face="courier new,monospace">Run Time</font></div><div><font face="courier new,monospace">-------------------------------------------------------------------------------<br>

        Program       log-slow-7.0.4  log-slow-7.6.2<br>-------------------------------------------------------------------------------<br>     bernouilli                 0.28           +6.7%<br>         exp3_8                 3.39          +20.2%<br>

    gen_regexps                 1.90           -6.3%<br>      integrate                 0.68         +114.3%<br>          kahan                 4.35           +7.5%<br>      paraffins                 1.93           -3.3%<br>

         primes                 1.51           +0.8%<br>         queens                 0.72           -1.7%<br>           rfib                 0.31           +6.3%<br>            tak                 1.58           -2.4%<br>

   wheel-sieve1                 2.28           -3.4%<br>   wheel-sieve2                 0.77           -3.6%<br>           x2n1                 0.04            0.13<br>        -1 s.d.                -----          -12.9%<br>

        +1 s.d.                -----          +34.3%<br>        Average                -----           +8.2%<br></font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 12, 2013 at 3:17 AM, Johan Tibell <span dir="ltr">&lt;<a href="mailto:johan.tibell@gmail.com" target="_blank">johan.tibell@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Nicolas!<div><br></div><div>I tried to reproduce the difference between 7.0.4 and 7.6.2 on the exp3_8, wheel-sieve1, and primes and couldn&#39;t get the same percent difference as you. We need to reconcile these differences somehow. Lets start with more exact machine specs. I have a:<br>



</div><div><br></div><div>$ cat /proc/cpuinfo</div><div><div>processor<span style="white-space:pre-wrap">        </span>: 7</div><div>vendor_id<span style="white-space:pre-wrap">        </span>: GenuineIntel</div>

<div>cpu family<span style="white-space:pre-wrap">        </span>: 6</div><div>model<span style="white-space:pre-wrap">                </span>: 58</div><div>model name<span style="white-space:pre-wrap">        </span>: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz</div>



<div>stepping<span style="white-space:pre-wrap">        </span>: 9</div><div>microcode<span style="white-space:pre-wrap">        </span>: 0x12</div><div>cpu MHz<span style="white-space:pre-wrap">                </span>: 1600.000</div>

<div>cache size<span style="white-space:pre-wrap">        </span>: 8192 KB</div><div>...</div></div><div><br></div><div><div>$ uname -a</div><div>Linux <a href="http://johantibell.com" target="_blank">johantibell.com</a> 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux</div>



</div><div><br></div><div>And GHC versions:</div><div><br></div><div><div>$ ghc-7.0.4 --info</div><div> [(&quot;Project name&quot;,&quot;The Glorious Glasgow Haskell Compilation System&quot;)</div><div> ,(&quot;Project version&quot;,&quot;7.0.4&quot;)</div>



<div> ,(&quot;Booter version&quot;,&quot;6.12.1&quot;)</div><div> ,(&quot;Stage&quot;,&quot;2&quot;)</div><div> ,(&quot;Build platform&quot;,&quot;x86_64-unknown-linux&quot;)</div><div> ,(&quot;Host platform&quot;,&quot;x86_64-unknown-linux&quot;)</div>



<div> ,(&quot;Target platform&quot;,&quot;x86_64-unknown-linux&quot;)</div><div> ,(&quot;Have interpreter&quot;,&quot;YES&quot;)</div><div> ,(&quot;Object splitting&quot;,&quot;YES&quot;)</div><div> ,(&quot;Have native code generator&quot;,&quot;YES&quot;)</div>



<div> ,(&quot;Have llvm code generator&quot;,&quot;YES&quot;)</div><div> ,(&quot;Support SMP&quot;,&quot;YES&quot;)</div><div> ,(&quot;Unregisterised&quot;,&quot;NO&quot;)</div><div> ,(&quot;Tables next to code&quot;,&quot;YES&quot;)</div>



<div> ,(&quot;RTS ways&quot;,&quot;l debug  thr thr_debug thr_l thr_p  dyn debug_dyn thr_dyn thr_debug_dyn&quot;)</div><div> ,(&quot;Leading underscore&quot;,&quot;NO&quot;)</div><div> ,(&quot;Debug on&quot;,&quot;False&quot;)</div>



<div> ,(&quot;LibDir&quot;,&quot;/usr/local/lib/ghc-7.0.4&quot;)</div><div> ,(&quot;Global Package DB&quot;,&quot;/usr/local/lib/ghc-7.0.4/package.conf.d&quot;)</div><div> ,(&quot;C compiler flags&quot;,&quot;[\&quot;-fno-stack-protector\&quot;]&quot;)</div>



<div> ,(&quot;Gcc Linker flags&quot;,&quot;[]&quot;)</div><div> ,(&quot;Ld Linker flags&quot;,&quot;[]&quot;)</div><div> ]</div></div><div><br></div><div><div>$ ghc-7.6.2 --info</div><div> [(&quot;Project name&quot;,&quot;The Glorious Glasgow Haskell Compilation System&quot;)</div>



<div> ,(&quot;GCC extra via C opts&quot;,&quot; -fwrapv&quot;)</div><div> ,(&quot;C compiler command&quot;,&quot;/usr/bin/gcc&quot;)</div><div> ,(&quot;C compiler flags&quot;,&quot; -fno-stack-protector &quot;)</div><div>



 ,(&quot;ar command&quot;,&quot;/usr/bin/ar&quot;)</div><div> ,(&quot;ar flags&quot;,&quot;q&quot;)</div><div> ,(&quot;ar supports at file&quot;,&quot;@ArSupportsAtFile@&quot;)</div><div> ,(&quot;touch command&quot;,&quot;touch&quot;)</div>



<div> ,(&quot;dllwrap command&quot;,&quot;/bin/false&quot;)</div><div> ,(&quot;windres command&quot;,&quot;/bin/false&quot;)</div><div> ,(&quot;perl command&quot;,&quot;/usr/bin/perl&quot;)</div><div> ,(&quot;target os&quot;,&quot;OSLinux&quot;)</div>



<div> ,(&quot;target arch&quot;,&quot;ArchX86_64&quot;)</div><div> ,(&quot;target word size&quot;,&quot;8&quot;)</div><div> ,(&quot;target has GNU nonexec stack&quot;,&quot;True&quot;)</div><div> ,(&quot;target has .ident directive&quot;,&quot;True&quot;)</div>



<div> ,(&quot;target has subsections via symbols&quot;,&quot;False&quot;)</div><div> ,(&quot;LLVM llc command&quot;,&quot;llc&quot;)</div><div> ,(&quot;LLVM opt command&quot;,&quot;opt&quot;)</div><div> ,(&quot;Project version&quot;,&quot;7.6.2&quot;)</div>



<div> ,(&quot;Booter version&quot;,&quot;7.4.1&quot;)</div><div> ,(&quot;Stage&quot;,&quot;2&quot;)</div><div> ,(&quot;Build platform&quot;,&quot;x86_64-unknown-linux&quot;)</div><div> ,(&quot;Host platform&quot;,&quot;x86_64-unknown-linux&quot;)</div>



<div> ,(&quot;Target platform&quot;,&quot;x86_64-unknown-linux&quot;)</div><div> ,(&quot;Have interpreter&quot;,&quot;YES&quot;)</div><div> ,(&quot;Object splitting supported&quot;,&quot;YES&quot;)</div><div> ,(&quot;Have native code generator&quot;,&quot;YES&quot;)</div>



<div> ,(&quot;Support SMP&quot;,&quot;YES&quot;)</div><div> ,(&quot;Unregisterised&quot;,&quot;NO&quot;)</div><div> ,(&quot;Tables next to code&quot;,&quot;YES&quot;)</div><div> ,(&quot;RTS ways&quot;,&quot;l debug  thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn&quot;)</div>



<div> ,(&quot;Leading underscore&quot;,&quot;NO&quot;)</div><div> ,(&quot;Debug on&quot;,&quot;False&quot;)</div><div> ,(&quot;LibDir&quot;,&quot;/usr/local/lib/ghc-7.6.2&quot;)</div><div> ,(&quot;Global Package DB&quot;,&quot;/usr/local/lib/ghc-7.6.2/package.conf.d&quot;)</div>



<div> ,(&quot;Gcc Linker flags&quot;,&quot;[\&quot;-Wl,--hash-size=31\&quot;,\&quot;-Wl,--reduce-memory-overheads\&quot;]&quot;)</div><div> ,(&quot;Ld Linker flags&quot;,&quot;[\&quot;--hash-size=31\&quot;,\&quot;--reduce-memory-overheads\&quot;]&quot;)</div>



<div> ]</div></div><div><br></div><div>I ran the benchmarks by running e.g.:</div><div><br></div><div>$ cd nofib/imaginary/sieve-wheel1</div><div>$ make clean &amp;&amp; make boot <span style="font-size:13px;background-color:rgb(247,247,247)">WithNofibHc=ghc-${VERSION} &amp;&amp; make </span><span style="font-size:13px;background-color:rgb(247,247,247)">WithNofibHc=ghc-${VERSION}</span></div>



<div><span style="font-size:13px;background-color:rgb(247,247,247)"><br></span></div><div><span style="font-size:13px;background-color:rgb(247,247,247)">Could you please try to run the &quot;imaginary&quot; benchmarks using exactly these commands and report the difference you see between 7.0.4 and 7.6.2. Here&#39;s what I see. 7.0.4 vs 7.6.2:</span></div>



<div><span style="font-size:13px;background-color:rgb(247,247,247)"><br></span></div><div><span style="font-size:13px;background-color:rgb(247,247,247)"><div class="im"><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><div><font face="courier new, monospace">     bernouilli          +3.3%     +0.2%      0.12      0.13     +0.0%</font></div><div><font face="courier new, monospace">         exp3_8          +1.1%    +53.7%      0.14      0.14   +300.0%</font></div>



<div><font face="courier new, monospace">    gen_regexps         +18.7%     +3.9%      0.00      0.00     +0.0%</font></div><div><font face="courier new, monospace">      integrate          -0.1%    +39.0%      0.21      0.23     +0.0%</font></div>



<div><font face="courier new, monospace">          kahan          +1.7%    +98.6%     +9.9%     +7.3%     +0.0%</font></div><div><font face="courier new, monospace">      paraffins          +1.3%     -1.2%      0.06      0.08     +0.0%</font></div>



<div><font face="courier new, monospace">         primes          +1.4%    +64.7%      0.04      0.05    +50.0%</font></div><div><font face="courier new, monospace">         queens          +0.8%     -0.5%      0.02      0.02     +0.0%</font></div>



<div><font face="courier new, monospace">           rfib          +1.7%    +42.8%      0.02      0.02     +0.0%</font></div><div><font face="courier new, monospace">            tak          +0.9%    +12.0%      0.01      0.01     +0.0%</font></div>



<div><font face="courier new, monospace">   wheel-sieve1          +0.8%    +66.6%     -4.6%     -5.8%    -12.5%</font></div><div><font face="courier new, monospace">   wheel-sieve2          +0.9%     +0.0%      0.12      0.13     +0.0%</font></div>



<div><font face="courier new, monospace">           x2n1         +10.3%    +87.3%      0.00      0.01   +200.0%</font></div><div><font face="courier new, monospace">--------------------------------------------------------------------------------</font></div>



<div><font face="courier new, monospace">            Min          -0.1%     -1.2%     -4.6%     -5.8%    -12.5%</font></div><div><font face="courier new, monospace">            Max         +18.7%    +98.6%     +9.9%     +7.3%   +300.0%</font></div>



<div><font face="courier new, monospace"> Geometric Mean          +3.2%    +31.7%     +2.4%     +0.5%    +23.6%</font></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-- Johan</div><div><br></div></font></span></span></div>

<div><span style="font-size:13px;background-color:rgb(247,247,247)"><br>

</span></div><div><span style="font-size:13px;background-color:rgb(247,247,247)"><br></span></div>
</blockquote></div><br></div>