diff options
author | Christy Lee <christycylee@gmail.com> | 2018-09-18 17:02:42 +0000 |
---|---|---|
committer | Christy Lee <christycylee@gmail.com> | 2018-09-18 17:02:42 +0000 |
commit | c85da8bd9a9dc3773fa23c572524e98ad429057d (patch) | |
tree | 243daf7226697e598ef5dcba98d317ad404305c0 /llvm/lib/Transforms | |
parent | f5a2848376b488322e5573fef8a239befe110f3a (diff) | |
download | bcm5719-llvm-c85da8bd9a9dc3773fa23c572524e98ad429057d.tar.gz bcm5719-llvm-c85da8bd9a9dc3773fa23c572524e98ad429057d.zip |
Do not optimize atomic load to non-atomic memcmp
Differential Revision: https://reviews.llvm.org/D51998
llvm-svn: 342498
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/MergeICmps.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/MergeICmps.cpp b/llvm/lib/Transforms/Scalar/MergeICmps.cpp index ff0183a8ea2..7b3c3f99f51 100644 --- a/llvm/lib/Transforms/Scalar/MergeICmps.cpp +++ b/llvm/lib/Transforms/Scalar/MergeICmps.cpp @@ -81,8 +81,9 @@ BCEAtom visitICmpLoadOperand(Value *const Val) { LLVM_DEBUG(dbgs() << "used outside of block\n"); return {}; } - if (LoadI->isVolatile()) { - LLVM_DEBUG(dbgs() << "volatile\n"); + // Do not optimize atomic loads to non-atomic memcmp + if (!LoadI->isSimple()) { + LLVM_DEBUG(dbgs() << "volatile or atomic\n"); return {}; } Value *const Addr = LoadI->getOperand(0); |