[PATCH] D73697: [LoopPredication] Optimize two exits case.

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 25 10:09:39 PST 2020


reames requested changes to this revision.
reames added a comment.
This revision now requires changes to proceed.

If I'm reading the description and code correctly, you're basically trying to avoid generating the construct "a == umin(a, b)" right?  If so, what's the problem with generating that?  I would expect other transform passes (such as instcombine) to very happily rip that apart into the component pieces.  In fact, I see in instcombine the transform "foldICmpWithMinMax" which appears to do exactly that.  Why isn't that sufficient?

In fact, I took the predicate-exits.ll test file, ran it through loop-pred and then instcombine, and I see exactly the simplification expected.  This seems to result in the same form as your change, so why do we need the complexity here?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73697/new/

https://reviews.llvm.org/D73697





More information about the llvm-commits mailing list