aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/SSAUpdater.cpp
diff options
context:
space:
mode:
authorDaniil Suchkov <suc-daniil@yandex.ru>2020-01-21 12:21:53 +0700
committerDaniil Suchkov <suc-daniil@yandex.ru>2020-01-23 15:53:53 +0700
commit4a8dbc617d0b28ce2ce3e6856376b3802409554e (patch)
treed327853c2a6074acb123363c9814f1a3be84eee0 /llvm/lib/Transforms/Utils/SSAUpdater.cpp
parent8306f55bfa2b14ac4289c6f1d3ab5c4a64d37f6b (diff)
downloadllvm-4a8dbc617d0b28ce2ce3e6856376b3802409554e.zip
llvm-4a8dbc617d0b28ce2ce3e6856376b3802409554e.tar.gz
llvm-4a8dbc617d0b28ce2ce3e6856376b3802409554e.tar.bz2
[SSAUpdater] Don't call ValueIsRAUWd upon single use replacement
It is incorrect to call ValueHandleBase::ValueIsRAUWd when only one use is replaced since it simply violates semantics of the callback and leads to bugs like PR44320. Previously this call was used specifically to keep LICM's cache of AliasSetTrackers up to date across passes (as PR36801 showed, even for that purpose it didn't work properly), but since LICM doesn't have that cache anymore, we can safely remove this incorrect call with no repercussions. This patch fixes https://bugs.llvm.org/show_bug.cgi?id=44320 Reviewers: asbirlea, fhahn, efriedma, reames Reviewed-By: asbirlea Differential Revision: https://reviews.llvm.org/D73089
Diffstat (limited to 'llvm/lib/Transforms/Utils/SSAUpdater.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/SSAUpdater.cpp5
1 files changed, 0 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Utils/SSAUpdater.cpp b/llvm/lib/Transforms/Utils/SSAUpdater.cpp
index bffdd11..36a17ce 100644
--- a/llvm/lib/Transforms/Utils/SSAUpdater.cpp
+++ b/llvm/lib/Transforms/Utils/SSAUpdater.cpp
@@ -195,11 +195,6 @@ void SSAUpdater::RewriteUse(Use &U) {
else
V = GetValueInMiddleOfBlock(User->getParent());
- // Notify that users of the existing value that it is being replaced.
- Value *OldVal = U.get();
- if (OldVal != V && OldVal->hasValueHandle())
- ValueHandleBase::ValueIsRAUWd(OldVal, V);
-
U.set(V);
}