diff options
author | Philip Reames <listmail@philipreames.com> | 2021-08-19 11:41:09 -0700 |
---|---|---|
committer | Philip Reames <listmail@philipreames.com> | 2021-08-19 11:43:52 -0700 |
commit | 17b9cb181775e47fb986dae45e2e2a38b84e33cf (patch) | |
tree | 3596d53a6bbd485d862875ad683f15792f2e335d /llvm/lib/Bitcode | |
parent | 8d7d89b0811da55c9f4bf21682b563b0ce521f97 (diff) | |
download | llvm-17b9cb181775e47fb986dae45e2e2a38b84e33cf.zip llvm-17b9cb181775e47fb986dae45e2e2a38b84e33cf.tar.gz llvm-17b9cb181775e47fb986dae45e2e2a38b84e33cf.tar.bz2 |
[runtimeunroll] Support multiple exits to latch exit w/prolog loop
This patch extends the runtime unrolling infrastructure to support unrolling a loop with multiple exiting blocks branching to the same exit block used by the latch. It intentionally does not include a cost model change to enable this functionality unless appropriate force flags are used.
This is the prolog companion to D107381. Since this was LGTMed, a problem with DT updating was reported against that patch. I roled in the analogous fix here as it seemed obvious, and not worth re-review.
As an aside, our prolog form leaves a lot of potential value on the floor when there is an invariant load or invariant condition in the loop being runtime unrolled. We should probably consider a "required prolog" heuristic. (Alternatively, maybe we should be peeling these cases more aggressively?)
Differential Revision: https://reviews.llvm.org/D108262
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions