diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-11-17 17:30:55 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-11-17 17:30:55 +0000 |
commit | 37196de31e6eab348030ef08cf2c3a78af42ee83 (patch) | |
tree | 4f8fcbf8237fea44a28e266dd9743493269ea2fc /clang/lib/Basic | |
parent | 96e1e396420d45fb4a1d3891105390c53120e8f6 (diff) | |
download | bcm5719-llvm-37196de31e6eab348030ef08cf2c3a78af42ee83.tar.gz bcm5719-llvm-37196de31e6eab348030ef08cf2c3a78af42ee83.zip |
Enable inlining of 4 byte atomic ops on ppc32, 8 byte atomic ops on ppc64.
Also fixes a bit/byte mismatch when checking if a target supports atomic ops of a certain size.
llvm-svn: 168260
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 305dc7c6450..95f7d581024 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -1037,6 +1037,9 @@ public: LongDoubleWidth = LongDoubleAlign = 64; LongDoubleFormat = &llvm::APFloat::IEEEdouble; } + + // PPC32 supports atomics up to 4 bytes. + MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 32; } virtual BuiltinVaListKind getBuiltinVaListKind() const { @@ -1065,7 +1068,9 @@ public: DescriptionString = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-" "i64:64:64-f32:32:32-f64:64:64-f128:128:128-" "v128:128:128-n32:64"; - + + // PPC64 supports atomics up to 8 bytes. + MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64; } virtual BuiltinVaListKind getBuiltinVaListKind() const { return TargetInfo::CharPtrBuiltinVaList; |