<div dir="ltr"><div dir="ltr">On Mon, 4 Oct 2021 at 08:43, David Green via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><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">Hello folks,<br>
<br>
We would like to start pushing -mcpu=generic for AArch64 towards enabling a set of features that is believed to be beneficial in general - that improve performance the for some CPUs without hurting it on any others. A blend of the performance options hopefully beneficial to all CPUs.<br></blockquote><div><br></div><div>Hi David,</div><div><br></div><div>This is the usual LLVM definition of "generic", so working on that goal is always good.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The largest part of that is enabling in-order scheduling using the Cortex-A55 schedule model. This is similar to the Arm backend change from eecb353d0e25ba which made -mcpu=generic perform inorder scheduling using the Cortex-A8 scheduling model.<br></blockquote><div><br></div><div>I think this makes sense because the A55 scheduling model is more likely to benefit the chips produced nowadays than the A8's.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">When specifying an Apple target, clang will set "-target-cpu apple-a7" on the command line, so should not be affected by this change when running from clang. This also doesn't enable more runtime unrolling like -mcpu=cortex-a55 does, only changing the schedule used.</blockquote><div><br></div><div>Thinking out loud, what do people think of creating an additional "ooo" target? So, "generic" is the same as "in-order", but the "ooo" (or "unordered", whatever) would pick a base OOO target, like A57, A72, etc.</div><div><br></div><div>A few years ago, when I was doing benchmarks for OpenBLAS changes on Arm, I realised doing that was beneficial to most targets, often only beaten by specifying the correct target.</div><div><br></div><div>cheers,</div><div>--renato</div></div></div>