[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