[SCEV] Don't invalidate past dependency-breaking instructions
When invalidating a value, we walk all users of that value and invalidate them as well. This can be very expensive for large use graphs. However, we only need to invalidate a user U of instruction I if SCEV(U) can depend on SCEV(I). This is not the case if U is an instruction that always produces a SCEVUnknown, such as a load. If the load pointer operand is invalidated, there is no need to invalidate the load result, which is completely unrelated from a SCEV perspective. Differential Revision: https://reviews.llvm.org/D149323
Loading
Please sign in to comment