diff options
author | Max Kazantsev <mkazantsev@azul.com> | 2021-05-25 12:22:41 +0700 |
---|---|---|
committer | Max Kazantsev <mkazantsev@azul.com> | 2021-05-25 12:43:31 +0700 |
commit | 2531fd70d19aa5d61feb533bbdeee7717a4129eb (patch) | |
tree | 7d855e631bccc0e92c33b3f44a75028863d19950 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | ce245246043d3c4f12515b2c773ed6c9174345b5 (diff) | |
download | llvm-2531fd70d19aa5d61feb533bbdeee7717a4129eb.zip llvm-2531fd70d19aa5d61feb533bbdeee7717a4129eb.tar.gz llvm-2531fd70d19aa5d61feb533bbdeee7717a4129eb.tar.bz2 |
[LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration
This patch handles one particular case of one-iteration loops for which SCEV
cannot straightforwardly prove BECount = 1. The idea of the optimization is to
symbolically execute conditional branches on the 1st iteration, moving in topoligical
order, and only visiting blocks that may be reached on the first iteration. If we find out
that we never reach header via the latch, then the backedge can be broken.
Differential Revision: https://reviews.llvm.org/D102615
Reviewed By: reames
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions