<br><br><div class="gmail_quote">On Fri, Feb 20, 2009 at 6:39 AM, Dan Doel <span dir="ltr">&lt;<a href="mailto:dan.doel@gmail.com">dan.doel@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;">
Sorry for replying to myself, but I got suspicious about the 6ms runtime of<br>
the 64-bit C++ code on my machine. So I looked at the assembly and found this:<br>
<br>
 &nbsp; &nbsp;.LCFI1:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;movabsq $499999999500000000, %rsi<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;movl &nbsp; &nbsp;$_ZSt4cout, %edi<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pushq &nbsp; %r12<br>
<br>
I&#39;m no assembly guru, but that makes me think that there&#39;s no actual<br>
computation going on in the runtime for the 64-bit C++ program, whereas the<br>
32-bit one is clearly doing work on my system, since it takes around 1 second.<br>
<br>
Not that I&#39;d be sad if GHC could reduce that whole constant at compile time,<br>
but GCC isn&#39;t doing 1 billion adds in 6 (or even 60) milliseconds.</blockquote><div><br></div><div>The GCC optimizer must know that you can&#39;t return a value to user space of that large as a return result. &nbsp;</div>
<div><br></div><div>In Haskell you&#39;re printing it... why not print it in C++?</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
<div><div></div><div class="Wj3C7c">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>