[PATCH] D14577: Cull non-standard variants of ARM architectures (NFC)

A. Skrobov via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 11 14:42:22 PST 2015


tyomitch added a comment.

In http://reviews.llvm.org/D14577#287543, @rengolin wrote:

> So, you removed the CPU names, but not the arch names. Try removing the AK_* types from the CPUs that you remove and see if anything breaks...


Yes I did delete them (lines 77-111 in ARMTargetParser.def)


================
Comment at: include/llvm/Support/ARMTargetParser.def:183
@@ -182,3 +168,1 @@
-ARM_CPU_NAME("iwmmxt", AK_ARMV5TE, FK_NONE, false, AEK_NONE)
-ARM_CPU_NAME("xscale", AK_ARMV5TE, FK_NONE, false, AEK_NONE)
 ARM_CPU_NAME("arm926ej-s", AK_ARMV5TEJ, FK_NONE, true, AEK_NONE)
----------------
rengolin wrote:
> Did you look through all the options that use AK_ARMV5TE or AK_XSCALE? Are they always being treated in the same way every time?
I don't touch either AK_ARMV5TE or AK_XSCALE.

These two definitions are no-ops: using "iwmmxt" or "xscale" as the CPU name is interpreted as AK_IWMMXT or AK_XSCALE, correspondingly, due to the definitions further down.

================
Comment at: lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:704
@@ -703,3 +703,2 @@
   case ARM::AK_ARMV4:
-  case ARM::AK_ARMV5:
     setAttributeItem(ARM_ISA_use, Allowed, false);
----------------
rengolin wrote:
> I guess there isn't a v5 without Thumb...
That's right: such an architecture was once defined, but deprecated straight away, and never implemented by any vendor.

https://www.scss.tcd.ie/~waldroj/3d1/arm_arm.pdf (dated 2005) says: 
> The valid architecture variants are as follows (variant in brackets for legacy reasons only):
> * ARMv4, ARMv4T, ARMv5T, (ARMv5TExP), ARMv5TE, ARMv5TEJ, and ARMv6
>
>
> The following architecture variants are now OBSOLETE:
> * ARMv1, ARMv2, ARMv2a, ARMv3, ARMv3G, ARMv3M, ARMv4xM, ARMv4TxM, ARMv5, ARMv5xM, and ARMv5TxM



http://reviews.llvm.org/D14577





More information about the llvm-commits mailing list