[SCEV] Fully invalidate SCEVUnknown on RAUW
authorNikita Popov <npopov@redhat.com>
Thu, 17 Feb 2022 09:03:58 +0000 (10:03 +0100)
committerNikita Popov <npopov@redhat.com>
Mon, 7 Mar 2022 08:28:28 +0000 (09:28 +0100)
commit8133778d3c8d481891143e21e0c5081a02a9889d
treeadc0f5cba1def07cf0066c60fc4cbf2bd5a4d50b
parent7b969b0bb53e5dcf23e0ddba977031fb104b63ec
[SCEV] Fully invalidate SCEVUnknown on RAUW

When a SCEVUnknown gets RAUWd, we currently drop it from the folding
set, but don't forget memoized values. I believe we should be
treating RAUW the same way as deletion here and invalidate all
caches and dependent expressions.

I don't have any specific cases where this causes issues right now,
but it does address the FIXME in https://reviews.llvm.org/D119488.

Differential Revision: https://reviews.llvm.org/D120033
llvm/lib/Analysis/ScalarEvolution.cpp