From: Peizhao Ou Date: Tue, 17 Jul 2018 19:07:00 +0000 (-0700) Subject: Ensures non-acquire RMWs are transformed to acquire RMWs X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=02bf06e293b1f6eebc23c3b8fcb75ebd85c92e11;p=oota-llvm.git Ensures non-acquire RMWs are transformed to acquire RMWs --- diff --git a/lib/CodeGen/AtomicExpandPass.cpp b/lib/CodeGen/AtomicExpandPass.cpp index 6152055a5bc..8665551bb75 100644 --- a/lib/CodeGen/AtomicExpandPass.cpp +++ b/lib/CodeGen/AtomicExpandPass.cpp @@ -131,6 +131,15 @@ bool AtomicExpand::runOnFunction(Function &F) { } break; } + case Instruction::AtomicRMW: { + auto* RMW = dyn_cast(&*I); + if (RMW->getOrdering() == Monotonic) { + RMW->setOrdering(Acquire); + } else if (RMW->getOrdering() == Release) { + RMW->setOrdering(AcquireRelease); + } + break; + } default: { break; }