aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2023-11-17 09:34:24 +0100
committerGitHub <noreply@github.com>2023-11-17 09:34:24 +0100
commitde176d8c5496d6cf20e82aface98e102c593dbe2 (patch)
treeb87d0e32cdf37534ef238c6b53a9bb8cdfa22c34 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent47b8763f8a814c0e755e154516537d8deb57e4b0 (diff)
downloadllvm-de176d8c5496d6cf20e82aface98e102c593dbe2.zip
llvm-de176d8c5496d6cf20e82aface98e102c593dbe2.tar.gz
llvm-de176d8c5496d6cf20e82aface98e102c593dbe2.tar.bz2
[SCEV][LV] Invalidate LCSSA exit phis more thoroughly (#69909)
This an alternative to #69886. The basic problem is that SCEV can look through trivial LCSSA phis. When the phi node later becomes non-trivial, we do invalidate it, but this doesn't catch uses that are not covered by the IR use-def walk, such as those in BECounts. Fix this by adding a special invalidation method for LCSSA phis, which will also invalidate all the SCEVUnknowns/SCEVAddRecExprs used by the LCSSA phi node and defined in the loop. We should probably also use this invalidation method in other places that add predecessors to exit blocks, such as loop unrolling and loop peeling. Fixes #69097. Fixes #66616. Fixes #63970.
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions