summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-02-01 05:53:33 +0000
committerHal Finkel <hfinkel@anl.gov>2013-02-01 05:53:33 +0000
commitdf1e4bfcb24816baac9370658d50aaef487ea0e9 (patch)
treecf40ee16b1049affc0ed6f6eb2525f540184ef3f /clang/lib/Basic/Targets.cpp
parent3c75665fdd860f84f609523afb4d72868cf5e636 (diff)
downloadbcm5719-llvm-df1e4bfcb24816baac9370658d50aaef487ea0e9.tar.gz
bcm5719-llvm-df1e4bfcb24816baac9370658d50aaef487ea0e9.zip
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
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 4d0a833d23d..46479702952 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -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 {
OpenPOWER on IntegriCloud