[cfe-dev] [ARM] Removing v7s/v7f/v7k and cortex-a9-mp

Bradley Smith bradley.smith at arm.com
Thu Nov 7 05:15:33 PST 2013


Hi,

I'd like to propose making a change in the ARM backend such that the MP
extensions subtarget feature is enabled by default on all CPUs with this
extension, however this has an impact on various other areas of Clang and
LLVM.

Most notably, Clang has a CPU name, cortex-a9-mp, that should be gotten rid
of as part of this change since it will be redundant in terms of subtarget
features enabled, (it would be identical to cortex-a9). However currently,
this CPU name maps to an architecture of armv7f. This looks to be a pseudo
architecture that from what I can gather is only used for the CPUSubType
field in the Mach-O header.

In order to avoid keeping this cortex-a9-mp CPU around (since it will just
be a source of confusion), I would also like to propose removing these
Mach-O specific architectures from Clang (7f, 7s, 7k) and instead pass this
information through to LLVM in a different manner, perhaps by changing the
CPUSubType logic in the ARM backend to be based upon CPU rather than these
pseudo architectures, or by passing it by command line? (I'm guessing care
will need to be taken to avoid letting CPUs that don't map to a valid
CPUSubType get through?).

Both of these changes should make the Clang driver a bit more sane in these
areas, so I think these are both generally good changes to do. Does anybody
have any comments/objections to this? Specifically, am I right in thinking
that the Mach-O header is the only place these pseudo architectures are
being used? What would be the right approach for getting the CPUSubType
information through to LLVM?

Regards,
Bradley Smith






More information about the cfe-dev mailing list