summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBuiltin.cpp
diff options
context:
space:
mode:
authorAlbert Gutowski <agutowski@google.com>2016-10-10 19:40:51 +0000
committerAlbert Gutowski <agutowski@google.com>2016-10-10 19:40:51 +0000
commitfcea61c563532d9db80cbaf143d14382071c2d85 (patch)
treec81034d1f20545fe43467587d5b25115ac279dcf /clang/lib/CodeGen/CGBuiltin.cpp
parentf9ff04c56a07ba23056da636f55ecff32900ed64 (diff)
downloadbcm5719-llvm-fcea61c563532d9db80cbaf143d14382071c2d85.tar.gz
bcm5719-llvm-fcea61c563532d9db80cbaf143d14382071c2d85.zip
Implement MS read/write barriers and __faststorefence intrinsic
Reviewers: hans, rnk, majnemer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25442 llvm-svn: 283793
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
-rw-r--r--clang/lib/CodeGen/CGBuiltin.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 5cbb6a2338f..f9b38fa5859 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -7612,6 +7612,17 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
Builder.CreateStore(HigherBits, HighBitsAddress);
return Builder.CreateIntCast(MulResult, ResType, IsSigned);
}
+
+ case X86::BI__faststorefence: {
+ return Builder.CreateFence(llvm::AtomicOrdering::SequentiallyConsistent,
+ llvm::CrossThread);
+ }
+ case X86::BI_ReadWriteBarrier:
+ case X86::BI_ReadBarrier:
+ case X86::BI_WriteBarrier: {
+ return Builder.CreateFence(llvm::AtomicOrdering::SequentiallyConsistent,
+ llvm::SingleThread);
+ }
}
}
OpenPOWER on IntegriCloud