diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-02-14 01:35:12 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-02-14 01:35:12 +0000 |
commit | a5b195a1dcc252916f68cadb81163a47d8995ee3 (patch) | |
tree | 6fd0ab86477d2a77778c391df234200c6412390e /clang/lib/CodeGen/CGStmtOpenMP.cpp | |
parent | 6866a3c6f4c6ac4c368f4292b6567e456646b07b (diff) | |
download | bcm5719-llvm-a5b195a1dcc252916f68cadb81163a47d8995ee3.tar.gz bcm5719-llvm-a5b195a1dcc252916f68cadb81163a47d8995ee3.zip |
Revert "Revert r229082 for a bit, it caused PR22577."
This reverts commit r229123. It was a red herring, the bug was present
without r229082.
llvm-svn: 229205
Diffstat (limited to 'clang/lib/CodeGen/CGStmtOpenMP.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGStmtOpenMP.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index b4dcadc5fdc..6b3faa14162 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -829,8 +829,11 @@ static void EmitOMPAtomicReadExpr(CodeGenFunction &CGF, bool IsSeqCst, assert(X->isLValue() && "X of 'omp atomic read' is not lvalue"); LValue XLValue = CGF.EmitLValue(X); LValue VLValue = CGF.EmitLValue(V); - RValue Res = XLValue.isGlobalReg() ? CGF.EmitLoadOfLValue(XLValue, Loc) - : CGF.EmitAtomicLoad(XLValue, Loc); + RValue Res = XLValue.isGlobalReg() + ? CGF.EmitLoadOfLValue(XLValue, Loc) + : CGF.EmitAtomicLoad(XLValue, Loc, + IsSeqCst ? llvm::SequentiallyConsistent + : llvm::Monotonic); // OpenMP, 2.12.6, atomic Construct // Any atomic construct with a seq_cst clause forces the atomically // performed operation to include an implicit flush operation without a |