summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorPaul Robinson <paul_robinson@playstation.sony.com>2015-07-14 20:52:32 +0000
committerPaul Robinson <paul_robinson@playstation.sony.com>2015-07-14 20:52:32 +0000
commitd30e2eefc3cf8dfd2210aefd62f13a6e7c011b43 (patch)
treeda56b0a2d44bbea3502c01394eb565e2faaff7c6 /clang/lib/Basic/Targets.cpp
parent16270a0b09f6918f9785aad0cbf531798f297d6c (diff)
downloadbcm5719-llvm-d30e2eefc3cf8dfd2210aefd62f13a6e7c011b43.tar.gz
bcm5719-llvm-d30e2eefc3cf8dfd2210aefd62f13a6e7c011b43.zip
Add a "maximum TLS alignment" characteristic to the target info, so it
can be different from the normal variable maximum. Add an error diagnostic for when TLS variables exceed maximum TLS alignment. Currenty only PS4 sets an explicit maximum TLS alignment. Patch by Charles Li! llvm-svn: 242198
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index c5bf90fa784..3cf74bc8492 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -580,6 +580,8 @@ public:
PS4OSTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
this->WCharType = this->UnsignedShort;
+ // On PS4, TLS variable cannot be aligned to more than 32 bytes (256 bits).
+ this->MaxTLSAlign = 256;
this->UserLabelPrefix = "";
switch (Triple.getArch()) {
OpenPOWER on IntegriCloud