[PATCH] D31726: AliasAnalysis: Be less conservative about volatile than atomic.
Daniel Berlin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 5 14:53:54 PDT 2017
dberlin updated this revision to Diff 94287.
dberlin added a comment.
- Fix spurious whitespace change
https://reviews.llvm.org/D31726
Files:
lib/Analysis/AliasAnalysis.cpp
test/Transforms/NewGVN/volatile-nonvolatile.ll
Index: test/Transforms/NewGVN/volatile-nonvolatile.ll
===================================================================
--- test/Transforms/NewGVN/volatile-nonvolatile.ll
+++ test/Transforms/NewGVN/volatile-nonvolatile.ll
@@ -1,4 +1,3 @@
-; XFAIL: *
; RUN: opt -tbaa -newgvn -S < %s | FileCheck %s
%struct.t = type { i32* }
Index: lib/Analysis/AliasAnalysis.cpp
===================================================================
--- lib/Analysis/AliasAnalysis.cpp
+++ lib/Analysis/AliasAnalysis.cpp
@@ -332,8 +332,8 @@
ModRefInfo AAResults::getModRefInfo(const LoadInst *L,
const MemoryLocation &Loc) {
- // Be conservative in the face of volatile/atomic.
- if (!L->isUnordered())
+ // Be conservative in the face of atomic.
+ if (isStrongerThan(L->getOrdering(), AtomicOrdering::NotAtomic))
return MRI_ModRef;
// If the load address doesn't alias the given address, it doesn't read
@@ -347,8 +347,8 @@
ModRefInfo AAResults::getModRefInfo(const StoreInst *S,
const MemoryLocation &Loc) {
- // Be conservative in the face of volatile/atomic.
- if (!S->isUnordered())
+ // Be conservative in the face of atomic.
+ if (isStrongerThan(S->getOrdering(), AtomicOrdering::NotAtomic))
return MRI_ModRef;
if (Loc.Ptr) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31726.94287.patch
Type: text/x-patch
Size: 1328 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170405/113feda3/attachment.bin>
More information about the llvm-commits
mailing list