diff options
author | Wei Mi <wmi@google.com> | 2017-09-22 16:30:00 +0000 |
---|---|---|
committer | Wei Mi <wmi@google.com> | 2017-09-22 16:30:00 +0000 |
commit | 5c5aea8028aa58b347eaf3b552bc158a2a85ee18 (patch) | |
tree | 59f3d84c43b86a2155750ad356c2183a68bd67d3 /lib/Basic/Targets.cpp | |
parent | 9687f1d501bfff51838e70d124cd9a7463e1a727 (diff) |
[Atomic][X8664] set max atomic inline width according to the target
This is to fix PR31620. MaxAtomicInlineWidth is set to 128 for x86_64. However
for target without cx16 support, 128 atomic operation will generate __sync_*
libcalls. The patch set MaxAtomicInlineWidth to 64 if the target doesn't support
cx16.
Differential Revision: https://reviews.llvm.org/D38046
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313992 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r-- | lib/Basic/Targets.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 3c1c08bb05..a9a5f4ddcf 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -620,6 +620,7 @@ TargetInfo::CreateTargetInfo(DiagnosticsEngine &Diags, Target->setSupportedOpenCLOpts(); Target->setOpenCLExtensionOpts(); + Target->setMaxAtomicWidth(); if (!Target->validateTarget(Diags)) return nullptr; |