[PATCH] D89381: [SCEV] Re-enable "Use nw flag and symbolic iteration count to sharpen ranges of AddRecs", attempt 3

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 27 22:06:42 PDT 2020


mkazantsev added inline comments.


================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:5764
+  ConstantRange EndRange =
+      IsSigned ? getSignedRange(End) : getUnsignedRange(End);
+  ConstantRange RangeBetween = StartRange.unionWith(EndRange);
----------------
nikic wrote:
> It might make more sense to use `getRangeRef(Start, SignHint)` and `getRangeRef(End, SignHint)` here, rather than going SignHint -> IsSigned -> SignHint.
Good point!


================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:5773
+      IsSigned ? RangeBetween.getLower().sge(RangeBetween.getUpper())
+               : RangeBetween.getLower().uge(RangeBetween.getUpper());
+  if (IsWrappingRange)
----------------
nikic wrote:
> You can use isWrappedSet() and isSignWrappedSet() here (there are some special cases due to the half-open range).
Will do.


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

https://reviews.llvm.org/D89381



More information about the llvm-commits mailing list