[3/5 PATCH/RFC PPC64] add power8 target for clang
Hal Finkel
hfinkel at anl.gov
Tue Jun 24 16:01:57 PDT 2014
LGTM. Please combine this with patch 4 (and the tests in patch 5).
-Hal
----- Original Message -----
> From: "Will Schmidt" <will_schmidt at vnet.ibm.com>
> To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>, "clang-dev Developers" <cfe-dev at cs.uiuc.edu>
> Cc: "Will Schmidt" <willschm at us.ibm.com>, "Ulrich Weigand" <ulrich.weigand at de.ibm.com>, "Hal Finkel"
> <hfinkel at anl.gov>, "William J. Schmidt" <wschmidt at linux.vnet.ibm.com>
> Sent: Tuesday, June 24, 2014 4:43:46 PM
> Subject: [3/5 PATCH/RFC PPC64] add power8 target for clang
>
> Add power8 target to clang
>
>
> diff --git a/tools/clang/lib/Basic/Targets.cpp
> b/tools/clang/lib/Basic/Targets.cpp
> index 4fdbc24..d54e8bd 100644
> --- a/tools/clang/lib/Basic/Targets.cpp
> +++ b/tools/clang/lib/Basic/Targets.cpp
> @@ -706,8 +706,9 @@ public:
> ArchDefinePwr6 = 1 << 9,
> ArchDefinePwr6x = 1 << 10,
> ArchDefinePwr7 = 1 << 11,
> - ArchDefineA2 = 1 << 12,
> - ArchDefineA2q = 1 << 13
> + ArchDefinePwr8 = 1 << 12,
> + ArchDefineA2 = 1 << 13,
> + ArchDefineA2q = 1 << 14
> } ArchDefineTypes;
>
> // Note: GCC recognizes the following additional cpus:
> @@ -754,6 +755,8 @@ public:
> .Case("pwr6x", true)
> .Case("power7", true)
> .Case("pwr7", true)
> + .Case("power8", true)
> + .Case("pwr8", true)
> .Case("powerpc", true)
> .Case("ppc", true)
> .Case("powerpc64", true)
> @@ -1016,7 +1019,10 @@ void PPCTargetInfo::getTargetDefines(const
> LangOptions &Opts,
> | ArchDefinePpcsq)
> .Case("pwr7", ArchDefineName | ArchDefinePwr6x | ArchDefinePwr6
> | ArchDefinePwr5x | ArchDefinePwr5 |
> | ArchDefinePwr4
> - | ArchDefinePwr6 | ArchDefinePpcgr |
> ArchDefinePpcsq)
> + | ArchDefinePpcgr | ArchDefinePpcsq)
> + .Case("pwr8", ArchDefineName | ArchDefinePwr7 | ArchDefinePwr6x
> + | ArchDefinePwr6 | ArchDefinePwr5x |
> ArchDefinePwr5
> + | ArchDefinePwr4 | ArchDefinePpcgr |
> ArchDefinePpcsq)
> .Case("power3", ArchDefinePpcgr)
> .Case("power4", ArchDefinePwr4 | ArchDefinePpcgr |
> ArchDefinePpcsq)
> .Case("power5", ArchDefinePwr5 | ArchDefinePwr4 |
> ArchDefinePpcgr
> @@ -1030,7 +1036,10 @@ void PPCTargetInfo::getTargetDefines(const
> LangOptions &Opts,
> | ArchDefinePpcsq)
> .Case("power7", ArchDefinePwr7 | ArchDefinePwr6x |
> ArchDefinePwr6
> | ArchDefinePwr5x | ArchDefinePwr5 |
> | ArchDefinePwr4
> - | ArchDefinePwr6 | ArchDefinePpcgr |
> ArchDefinePpcsq)
> + | ArchDefinePpcgr | ArchDefinePpcsq)
> + .Case("power8", ArchDefinePwr8 | ArchDefinePwr7 |
> ArchDefinePwr6x
> + | ArchDefinePwr6 | ArchDefinePwr5x |
> ArchDefinePwr5
> + | ArchDefinePwr4 | ArchDefinePpcgr |
> ArchDefinePpcsq)
> .Default(ArchDefineNone);
>
> if (defs & ArchDefineName)
> @@ -1057,6 +1066,8 @@ void PPCTargetInfo::getTargetDefines(const
> LangOptions &Opts,
> Builder.defineMacro("_ARCH_PWR6X");
> if (defs & ArchDefinePwr7)
> Builder.defineMacro("_ARCH_PWR7");
> + if (defs & ArchDefinePwr8)
> + Builder.defineMacro("_ARCH_PWR8");
> if (defs & ArchDefineA2)
> Builder.defineMacro("_ARCH_A2");
> if (defs & ArchDefineA2q) {
> @@ -1105,6 +1116,7 @@ void
> PPCTargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features)
> const {
> .Case("g5", true)
> .Case("pwr6", true)
> .Case("pwr7", true)
> + .Case("pwr8", true)
> .Case("ppc64", true)
> .Case("ppc64le", true)
> .Default(false);
>
>
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the cfe-commits
mailing list