<div dir="ltr">Hi Tim,<div><br></div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-25 15:26 GMT+08:00 Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi Kevin,<br>
<br>
I assume you've looked at the GCC documentation in this area, since<br>
your ideas are very similar:<br>
<a href="https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html" target="_blank">https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html</a>. I actually<br>
think that looks like a rational set of conventions too.<br>
<br>
The main difference appears to be that GCC requires "armv8-a" in<br>
-march before any features, which I quite like. But even if I didn't<br>
it's close enough that we should follow anyway, for compatibility if<br>
nothing else.<br></blockquote><div>In my plan,  "armv8-a" "arm64" and "aarch64" are optional <span style="font-family:arial,sans-serif">architecture name</span> for '-march'. Because triple is necessary for clang and it have selected the <span style="font-family:arial,sans-serif">architecture</span>. If one day there's another <font face="arial, sans-serif">architecture is introduced, </font><span style="font-family:arial,sans-serif">architecture would be</span><font face="arial, sans-serif"> decided by triple at first, and can be overridden if </font><span style="font-family:arial,sans-serif;font-size:13.63636302947998px">architecture is specified by '-march'.</span></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><br>
> Last change is about '-mcpu'. If user don't care portability and only want<br>
> to get good performance on a certain CPU, he can use<br>
> '-mcpu=XXX+[no]featureA', which is an alias of '-march=default feature of<br>
> XXX+[no]featureA -mtune=XXX'. All default feature will get enabled and tune<br>
> target will be selected. So it's just a short hand of '-march' and '-mcpu'.<br>
<br>
</div>I think we should also specifically warn on the use of -mcpu:<br>
aggressively deprecate it on AArch64. AArch64 is a new architecture,<br>
there's no real excuse for using the legacy options.<br></blockquote><div>Agreed. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><br>
> I think those changes can easily build binary running on multiple CPUs and<br>
> get more compatible with gcc. Is this new proposal reasonable?<br>
<br>
</div>I like it!<br>
<br>
Cheers.<br>
<span class=""><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Best Regards,<div><br></div><div>Kevin Qin</div></div>
</div></div>