[PATCH] Enable unrolling of multi-exit loops

Mark Heffernan meheff at google.com
Wed Oct 8 14:16:58 PDT 2014

>>! In D5550#10, @atrick wrote:
> One thing I'm concerned about though is that I think you're using SCEVDivision for the first time in the standard LLVM pipeline (outside of the delinearizer). SCEVDivision looks like it recurses over the expression operands. Every time someone does this, we eventually have to track down some case that results in pathological compile time. Can you prove that this recursion will never visit the same expression twice? If not, I think you need to add a visited set as we do elsewhere, or find another way to check for exact division.

Is using SCEVDivision fundamentally different than getUDivExpr which is used now?  getUDivExpr recurses over expression operands just like SCEVDivision.



More information about the llvm-commits mailing list