diff options
author | Tim Northover <tnorthover@apple.com> | 2014-05-30 14:41:51 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2014-05-30 14:41:51 +0000 |
commit | d622e1282ce76c70c72c4b7272fcaa6e79e2a7bf (patch) | |
tree | 46219e77246032c4d2d901c903ced1faa4e8793f /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | |
parent | dee68ba6e315f1b92ac84cd3e8fed3fe6b90ace3 (diff) | |
download | bcm5719-llvm-d622e1282ce76c70c72c4b7272fcaa6e79e2a7bf.tar.gz bcm5719-llvm-d622e1282ce76c70c72c4b7272fcaa6e79e2a7bf.zip |
SelectionDAG: skip barriers for unordered atomic operations
Unordered is strictly weaker than monotonic, so if the latter doesn't have any
barriers then the former certainly shouldn't.
rdar://problem/16548260
llvm-svn: 209901
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 070e929fce7..8d10a80b4d2 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -3570,12 +3570,12 @@ static SDValue InsertFenceForAtomic(SDValue Chain, AtomicOrdering Order, if (Before) { if (Order == AcquireRelease || Order == SequentiallyConsistent) Order = Release; - else if (Order == Acquire || Order == Monotonic) + else if (Order == Acquire || Order == Monotonic || Order == Unordered) return Chain; } else { if (Order == AcquireRelease) Order = Acquire; - else if (Order == Release || Order == Monotonic) + else if (Order == Release || Order == Monotonic || Order == Unordered) return Chain; } SDValue Ops[3]; |