[PATCH] D148244: [IRCE] Support inverted range check's predicate

Serguei Katkov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 29 00:49:27 PDT 2023


skatkov added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp:374
+  // successor - outside it. Invert branch for opposite case
+  if (!L->contains(BI->getSuccessor(0)) && L->contains(BI->getSuccessor(1))) {
+    IRBuilder<> Builder(BI);
----------------
skatkov wrote:
> Can we move this transformation AFTER profitability check? The idea is that if we will not add this check to consideration, no need to do modification.
> 
> I guess it should work:
> 1) Get operand idx of edge coming to loop
> 2) use this operand number in getEdgeProbability
> 3) if we pass check, do transformation if operand idx != 0.
No operand idx but successor idx...


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

https://reviews.llvm.org/D148244



More information about the llvm-commits mailing list