diff options
author | Daniil Suchkov <suc-daniil@yandex.ru> | 2019-11-21 17:56:02 +0700 |
---|---|---|
committer | Daniil Suchkov <suc-daniil@yandex.ru> | 2019-12-06 13:21:49 +0700 |
commit | c4d8c6319f576a7540017168db2f0440691914f4 (patch) | |
tree | 33303d59ca13b28272bb005b4273688a30ae1385 /lldb/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py | |
parent | da650094b187ee3c8017d74f63c885663faca1d8 (diff) | |
download | bcm5719-llvm-c4d8c6319f576a7540017168db2f0440691914f4.tar.gz bcm5719-llvm-c4d8c6319f576a7540017168db2f0440691914f4.zip |
[LCSSA] Don't use VH callbacks to invalidate SCEV when creating LCSSA phis
In general ValueHandleBase::ValueIsRAUWd shouldn't be called when not
all uses of the value were actually replaced, though, currently
formLCSSAForInstructions calls it when it inserts LCSSA-phis.
Calls of ValueHandleBase::ValueIsRAUWd were added to LCSSA specifically
to update/invalidate SCEV. In the best case these calls duplicate some
of the work already done by SE->forgetValue, though in case when SCEV of
the value is SCEVUnknown, SCEV replaces the underlying value of
SCEVUnknown with the new value (i.e. acts like LCSSA-phi actually fully
replaces the value it is created for), which leads to SCEV being
corrupted because LCSSA-phi rarely dominates all uses of its inputs.
Fixes bug https://bugs.llvm.org/show_bug.cgi?id=44058.
Reviewers: fhahn, efriedma, reames, sanjoy.google
Reviewed By: fhahn
Subscribers: hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70593
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py')
0 files changed, 0 insertions, 0 deletions