[PATCH] D24818: Using branch probability to guide critical edge splitting.
David Li via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 3 11:45:25 PDT 2016
davidxl added a comment.
yes, loop rotation is caused by ifconvert. The cfg does not have an edge to the function with predicated exit sequence like this:
add r12, r12, #1
cmp r12, r0
moveq r0, r1
popeq {r4, pc}
b LBB0_1
This looks like an unconditional loop backedge, which leads to MBP to consider this block a candidate to be loop top. With a better loop rotation algorithm, this opportunity should be discovered even when CFG is properly modeled.
https://reviews.llvm.org/D24818
More information about the llvm-commits
mailing list