[PATCH] D17442: [LPM] Remove the last worrisome split in the primary loop pass pipeline, allowing LICM and friends to always run over the outer loop after unrolling has a chance to remove the inner loop.

Michael Zolotukhin via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 19 12:23:36 PST 2016


mzolotukhin added a comment.

> LoopPassManager [ loop passes A -> LoopSimplifyCFG -> loop passes B ]

> SimplifyCFG

> 

> does worse than

> 

> LoopPassManager [ loop passes A ]

> SimplifyCFG

>  LoopPassManager [ loop passes B ]


Yeah, in my experiments we did have a lot of cases like you described. Basically, `LoopSimplifyCFG` in the first option wasn't able to cleanup the code enough for `loop passes B` to be effective. I also tried adding loop deletion/etc. but with no luck either.
That said, I didn't spend much time on it, so I don't have deep details. I think it's worth investigating further, especially since this is an active are now.


http://reviews.llvm.org/D17442





More information about the llvm-commits mailing list