[PATCH] D24540: [AArch64] Add Cavium ThunderX subtarget support.

David Abdurachmanov via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 18 06:53:15 PDT 2016

davidlt added inline comments.

Comment at: lib/Target/AArch64/AArch64.td:267
+                                   FeaturePostRAScheduler,
+				   HasV8_1aOps]>;
rengolin wrote:
> jgreenhalgh wrote:
> > jmolloy wrote:
> > > Indentation is off here.
> > I'm confused by this feature bit, and it doesn't line up with the -mcpu=thunderx support in GCC.
> > 
> > As far as I am aware, HasV8_1aOps enables support for all of the ARMv8.1-A extensions, i.e. the Large System Extensions, PAN, and the RDMA instructions. But, there exist ThunderX implementations which don't provide support for all of these extensions. For these ThunderX targets, the set of extensions enabled here would be too large.
> > 
> > The GCC implementation only enables ARMv8-A with the CRC, Advanced SIMD, Floating-Point and Cryptography extensions.
> > 
> > Would that be more correct here?
> If that's the case, then yes, ARMv8A would be a better match. I don't know enough about ThunderX support to have an opinion, though.
IIRC, ThunderX Pass 1 was ARMv8.0 silicon (before landed in general availability products, I guess), but what's shipping now is ThunderX Pass 2 which is ARMv8.1.

From Andrew Pinski patch (Nov 2015) which probably never landed in GCC:

> The reason why thunderxt88pass1 is seperate from thunderx is because
> thunderx is changed to be an ARMv8.1 arch core while thunderxt88pass1
> is still an ARMv8 arch core.

See, e.g. https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02148.html



More information about the llvm-commits mailing list