[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