[AArch64] Implement Clang CLI interface proposal about "-march".
authorKevin Qin <Kevin.Qin@arm.com>
Fri, 18 Jul 2014 07:03:22 +0000 (07:03 +0000)
committerKevin Qin <Kevin.Qin@arm.com>
Fri, 18 Jul 2014 07:03:22 +0000 (07:03 +0000)
commit110db6f2ad2016b72121ff6538035f252810acbf
tree8a64768d73733340765a73b540eaf58baca12772
parente15442c8aa8df1a99f1aaaa34d672466c35c001e
[AArch64] Implement Clang CLI interface proposal about "-march".

1. Revert "Add default feature for CPUs on AArch64 target in Clang"
at r210625. Then, all enabled feature will by passed explicitly by
-target-feature in -cc1 option.

2. Get "-mfpu" deprecated.

3. Implement support of "-march". Usage is:
    -march=armv8-a+[no]feature
  For instance, "-march=armv8-a+neon+crc+nocrypto". Here "armv8-a" is
  necessary, and CPU names are not acceptable. Candidate features are
  fp, neon, crc and crypto. Where conflicting feature modifiers are
  specified, the right-most feature is used.

4. Implement support of "-mtune". Usage is:
    -march=CPU_NAME
  For instance, "-march=cortex-a57". This option will ONLY get
  micro-architectural feature enabled specifying to target CPU,
  like "+zcm" and "+zcz" for cyclone. Any architectural features
  WON'T be modified.

5. Change usage of "-mcpu" to "-mcpu=CPU_NAME+[no]feature", which is
  an alias to "-march={feature of CPU_NAME}+[no]feature" and
  "-mtune=CPU_NAME" together. Where this option is used in conjunction
  with -march or -mtune, those options take precedence over the
  appropriate part of this option.

llvm-svn: 213353
clang/include/clang/Basic/DiagnosticDriverKinds.td
clang/lib/Basic/Targets.cpp
clang/lib/Driver/ToolChains.cpp
clang/lib/Driver/Tools.cpp
clang/test/CodeGen/arm_acle.c
clang/test/Driver/aarch64-cpus.c
clang/test/Driver/aarch64-mfpu.c [deleted file]
clang/test/Preprocessor/aarch64-target-features.c