[PATCH] D65673: [MBP] Disable aggressive loop rotate in plain mode
Danila Malyutin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 19 08:14:31 PST 2020
danilaml added a comment.
Herald added subscribers: kerbowa, luismarques, sameer.abuasal, pzheng, lenary, Jim.
@Carrot this seems to be reverted, but aggressive loop rotate still has mostly negative affect on performance in internal benchmarks that I've run.
Could you please elaborate on how branches taken was reduced from 2 to 1 (and how it was calculated) for the test case you mentioned in the https://reviews.llvm.org/D43256#1534855
entry
|
V
-->for.body
| |\
| | \
| | \
| | if.then3
| | /
| | /
| |/
---for.inc
|
V
for.cond.cleanup
One of my benchmarks is very similar, however the aggressive transformation only introduces additional unconditional branches.
It seems that part of the reason for this is that the branches that the transformation was supposed to make fallthrough (i.e. for.inc -> for.body) are conditional and couldn't be eliminated even if the block is reordered, so previously fallthrough became unconditional branches, while no other branch was eliminated.
How is this transformation supposed to handle this?
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D65673/new/
https://reviews.llvm.org/D65673
More information about the llvm-commits
mailing list