<div dir="ltr"><br><div class="gmail_extra">On 31 July 2018 at 11:49, Timothe Litt <span dir="ltr"><<a href="mailto:litt@ieee.org" target="_blank">litt@ieee.org</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<br>
<div class="gmail-m_5919537162170341193moz-cite-prefix">On 31-Jul-18 10:08, Paul Koning wrote:<br>
</div>
<blockquote type="cite">
<pre></pre>
<blockquote type="cite">
<pre>On Jul 31, 2018, at 9:33 AM, Robert Armstrong <a class="gmail-m_5919537162170341193moz-txt-link-rfc2396E" href="mailto:bob@jfcl.com" target="_blank"><bob@jfcl.com></a> wrote:
</pre>
FWIW, this may also say something about the quality of the code
generation in gcc for ARM vs x86 processors, or it may even say
something about the relative efficiency of those two
architectures.
</blockquote>
<pre>One thing worth doing is to use the latest gcc. Code generation keeps improving, and it's likely that architectures such as ARM see significant benefits in newer releases.
</pre>
</blockquote>
<br>
Bob's SimH shows:<br>
<pre>Compiler: GCC 6.3.0 20170516</pre>
The latest gcc is 8.1.0.<br>
<br>
It's a bit of a pain to build (I did it recently), but less so than
in years past.<br>
<br>
On a Pi, it will take quite a while. Be sure to use the latest
dependencies - gmp, mpc, mpfr. And put in some place like
/usr/local - you don't want to replace the system compiler.<br>
<br>
Read <a class="gmail-m_5919537162170341193moz-txt-link-freetext" href="http://gcc.gnu.org/wiki/InstallingGCC" target="_blank">http://gcc.gnu.org/wiki/<wbr>InstallingGCC</a> &
<a class="gmail-m_5919537162170341193moz-txt-link-freetext" href="https://gcc.gnu.org/install/index.html" target="_blank">https://gcc.gnu.org/install/<wbr>index.html</a>.<br>
<br>
I haven't played with isl - it may help, or it may expose new
issues.<br>
<br>
You may be better off building a cross-compiler & building on a
fast x86 or other platform if you have one. Besides computes, I/O
on the PI can be pretty slow - USB is not a high-performance bus.
Especially if you need a bunch of hubs.<br>
<br>
You also may need the latest binutils - if not for the build, for
using the compiler. Somewhere between the version I used previously
and the new one, the object file format was enhanced incompatibly.<br>
<br>
ARM is a RISCish architecture, x86 is a very CISC one, burdened with
a lot of backward compatibility. Under the hood, it uses a lot of
clever optimizations. Both are moving targets, as are their
compilers. (GCC isn't the only choice. Don't forget to try ICC if
you want Intel's take on optimized code for their CPUs. And Clang
is coming along.) Don't open the religious war over "relative
efficiency"; the only thing that matters is whether code that you
care about has performance that you deem adequate.<br>
<br>
Have fun.<br></div></blockquote><div> </div><div><br></div><div>I did a writeup a while back about various compilers and SIMH on x86, here is the link from the archive: <a href="http://mailman.trailing-edge.com/pipermail/simh/2015-December/014102.html">http://mailman.trailing-edge.com/pipermail/simh/2015-December/014102.html</a></div><div><br></div><div>Profile-guided feedback is extremely helpful for SIMH. If you are able to recompile SIMH for your workload using feedback, the gains are extremely significant.</div><div><br></div><div>-Henry<br></div><div> </div></div></div></div>