aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopSimplify.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2017-01-24 12:34:47 +0000
committerChandler Carruth <chandlerc@gmail.com>2017-01-24 12:34:47 +0000
commit942c31474f1048a5e860752576fb2e9dcf106bda (patch)
tree9ff86e8cf39c9ad0d8929057c210695d4644154f /llvm/lib/Transforms/Utils/LoopSimplify.cpp
parent526299c81c42c44d3174f79bbe5cc16bfbe701ce (diff)
downloadllvm-942c31474f1048a5e860752576fb2e9dcf106bda.zip
llvm-942c31474f1048a5e860752576fb2e9dcf106bda.tar.gz
llvm-942c31474f1048a5e860752576fb2e9dcf106bda.tar.bz2
[PM] Introduce a PoisoningVH as a (more expensive) alternative to
AssertingVH that delays any reported error until the handle is *used*. This allows data structures to contain handles which become dangling provided the data structure is cleaned up afterward rather than used for anything interesting. The implementation is moderately horrible in part because it works to leave AssertingVH in place, undisturbed. If at some point there is consensus that this is simply how AssertingVH should be used, it can be substantially simplified. This remains a boring pointer in a non-asserts build as you would expect. The only place we pay cost is in asserts builds. I plan to use this as a basis for replacing the asserting VHs that currently dangle in the new PM until invalidation occurs in both LVI and SCEV. Differential Revision: https://reviews.llvm.org/D29061 llvm-svn: 292925
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopSimplify.cpp')
0 files changed, 0 insertions, 0 deletions