1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib/Transforms
Daniil Suchkov 769f3ebc15 [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
2019-12-06 13:21:49 +07:00
..
AggressiveInstCombine [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
CFGuard [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Coroutines [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Hello
InstCombine Revert "[InstCombine] keep assumption before sinking calls" 2019-12-05 10:39:34 -08:00
Instrumentation Revert "[Coverage] Revise format to reduce binary size" 2019-12-04 10:35:14 -08:00
IPO [ThinLTO] Add option to disable readonly/writeonly attribute propagation 2019-12-05 16:33:54 -08:00
ObjCARC [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Scalar [LCSSA] Don't use VH callbacks to invalidate SCEV when creating LCSSA phis 2019-12-06 13:21:49 +07:00
Utils [LCSSA] Don't use VH callbacks to invalidate SCEV when creating LCSSA phis 2019-12-06 13:21:49 +07:00
Vectorize [LV] Scalar with predication must not be uniform 2019-12-03 19:50:24 +02:00
CMakeLists.txt
LLVMBuild.txt