forked from OSchip/llvm-project
Add PPC A2Q core and BG/Q preprocessor definitions
The a2q core is the variant of the a2 core used on the BG/Q supercomputers. llvm-svn: 174151
This commit is contained in:
parent
3c75665fdd
commit
df1e4bfcb2
|
@ -661,7 +661,9 @@ public:
|
|||
ArchDefine603 = 1 << 4,
|
||||
ArchDefine604 = 1 << 5,
|
||||
ArchDefinePwr4 = 1 << 6,
|
||||
ArchDefinePwr6 = 1 << 7
|
||||
ArchDefinePwr6 = 1 << 7,
|
||||
ArchDefineA2 = 1 << 8,
|
||||
ArchDefineA2q = 1 << 9
|
||||
} ArchDefineTypes;
|
||||
|
||||
virtual bool setCPU(const std::string &Name) {
|
||||
|
@ -686,6 +688,7 @@ public:
|
|||
.Case("970", true)
|
||||
.Case("g5", true)
|
||||
.Case("a2", true)
|
||||
.Case("a2q", true)
|
||||
.Case("e500mc", true)
|
||||
.Case("e5500", true)
|
||||
.Case("pwr6", true)
|
||||
|
@ -894,6 +897,8 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts,
|
|||
.Case("pwr6", ArchDefinePwr6 | ArchDefinePpcgr | ArchDefinePpcsq)
|
||||
.Case("pwr7", ArchDefineName | ArchDefinePwr6 | ArchDefinePpcgr
|
||||
| ArchDefinePpcsq)
|
||||
.Case("a2", ArchDefineA2)
|
||||
.Case("a2q", ArchDefineName | ArchDefineA2 | ArchDefineA2q)
|
||||
.Default(ArchDefineNone);
|
||||
|
||||
if (defs & ArchDefineName)
|
||||
|
@ -913,7 +918,20 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts,
|
|||
if (defs & ArchDefinePwr6) {
|
||||
Builder.defineMacro("_ARCH_PWR5");
|
||||
Builder.defineMacro("_ARCH_PWR6");
|
||||
}
|
||||
}
|
||||
if (defs & ArchDefineA2)
|
||||
Builder.defineMacro("_ARCH_A2");
|
||||
if (defs & ArchDefineA2q) {
|
||||
Builder.defineMacro("_ARCH_A2Q");
|
||||
Builder.defineMacro("_ARCH_QP");
|
||||
}
|
||||
|
||||
if (getTriple().getVendor() == llvm::Triple::BGQ) {
|
||||
Builder.defineMacro("__bg__");
|
||||
Builder.defineMacro("__THW_BLUEGENE__");
|
||||
Builder.defineMacro("__bgq__");
|
||||
Builder.defineMacro("__TOS_BGQ__");
|
||||
}
|
||||
}
|
||||
|
||||
void PPCTargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
|
||||
|
|
|
@ -1053,6 +1053,7 @@ static std::string getPPCTargetCPU(const ArgList &Args) {
|
|||
.Case("970", "970")
|
||||
.Case("G5", "g5")
|
||||
.Case("a2", "a2")
|
||||
.Case("a2q", "a2q")
|
||||
.Case("e500mc", "e500mc")
|
||||
.Case("e5500", "e5500")
|
||||
.Case("power6", "pwr6")
|
||||
|
|
|
@ -66,6 +66,12 @@
|
|||
// PPCPWR7: "-cc1"
|
||||
// PPCPWR7: "-target-cpu" "pwr7"
|
||||
|
||||
// RUN: %clang -target powerpc64-unknown-linux-gnu \
|
||||
// RUN: -### -S %s -mcpu=a2q 2>&1 | FileCheck -check-prefix=PPCA2Q %s
|
||||
// PPCA2Q: clang
|
||||
// PPCA2Q: "-cc1"
|
||||
// PPCA2Q: "-target-cpu" "a2q"
|
||||
|
||||
// RUN: %clang -target powerpc64-unknown-linux-gnu \
|
||||
// RUN: -### -S %s 2>&1 | FileCheck -check-prefix=PPC64NS %s
|
||||
// PPC64NS: clang
|
||||
|
|
|
@ -1663,6 +1663,21 @@
|
|||
// PPC64:#define __ppc64__ 1
|
||||
// PPC64:#define __ppc__ 1
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -target-cpu a2q -fno-signed-char < /dev/null | FileCheck -check-prefix PPCA2Q %s
|
||||
//
|
||||
// PPCA2Q:#define _ARCH_A2 1
|
||||
// PPCA2Q:#define _ARCH_A2Q 1
|
||||
// PPCA2Q:#define _ARCH_PPC 1
|
||||
// PPCA2Q:#define _ARCH_PPC64 1
|
||||
// PPCA2Q:#define _ARCH_QP 1
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-bgq-linux -fno-signed-char < /dev/null | FileCheck -check-prefix PPCBGQ %s
|
||||
//
|
||||
// PPCBGQ:#define __THW_BLUEGENE__ 1
|
||||
// PPCBGQ:#define __TOS_BGQ__ 1
|
||||
// PPCBGQ:#define __bg__ 1
|
||||
// PPCBGQ:#define __bgq__ 1
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu -fno-signed-char < /dev/null | FileCheck -check-prefix PPC64-LINUX %s
|
||||
//
|
||||
// PPC64-LINUX:#define _ARCH_PPC 1
|
||||
|
|
Loading…
Reference in New Issue