[llvm] c35e818 - [GVN][NFC] Remove redundant check
via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 13 12:59:47 PST 2021
Author: ksyx
Date: 2021-11-13T15:59:43-05:00
New Revision: c35e8185d8c170c20e28956e0c9f3c1be895fefb
URL: https://github.com/llvm/llvm-project/commit/c35e8185d8c170c20e28956e0c9f3c1be895fefb
DIFF: https://github.com/llvm/llvm-project/commit/c35e8185d8c170c20e28956e0c9f3c1be895fefb.diff
LOG: [GVN][NFC] Remove redundant check
The if-check above deleted part guarantees that StoreOffset <= LoadOffset
and that StoreOffset + StoreSize >= LoadOffset + LoadSize, and given that
LoadOffset + LoadSize > LoadOffset when LoadSize > 0. Thus, this shows
StoreOffset + StoreSize > LoadOffset is guaranteed given LoadSize > 0,
while it could be meaningless to have a type with nonpositive size, so that
the check could be removed.
Part of revision D100179
Reviewed By: nikic
Added:
Modified:
llvm/lib/Transforms/Utils/VNCoercion.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Utils/VNCoercion.cpp b/llvm/lib/Transforms/Utils/VNCoercion.cpp
index dbe3cc93e72b4..9984b83c3ff0c 100644
--- a/llvm/lib/Transforms/Utils/VNCoercion.cpp
+++ b/llvm/lib/Transforms/Utils/VNCoercion.cpp
@@ -204,18 +204,6 @@ static int analyzeLoadFromClobberingWrite(Type *LoadTy, Value *LoadPtr,
StoreOffset + StoreSize < LoadOffset + LoadSize)
return -1;
- // If the load and store are to the exact same address, they should have been
- // a must alias. AA must have gotten confused.
- // FIXME: Study to see if/when this happens. One case is forwarding a memset
- // to a load from the base of the memset.
-
- // If the load and store don't overlap at all, the store doesn't provide
- // anything to the load. In this case, they really don't alias at all, AA
- // must have gotten confused. The if statement above ensure the condition
- // that StoreOffset <= LoadOffset.
- if (StoreOffset + int64_t(StoreSize) <= LoadOffset)
- return -1;
-
// Okay, we can do this transformation. Return the number of bytes into the
// store that the load is.
return LoadOffset - StoreOffset;
More information about the llvm-commits
mailing list