[PATCH] D60035: [SCEV] Use unsigned/signed intersection type in SCEV

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 30 14:22:45 PDT 2019


nikic created this revision.
nikic added reviewers: mkazantsev, sanjoy, lebedev.ri.
Herald added subscribers: llvm-commits, javed.absar, hiraditya.
Herald added a project: LLVM.

Based on D59959 <https://reviews.llvm.org/D59959>, this switches SCEV to use unsigned/signed range intersection based on the sign hint. This will prefer non-wrapping ranges in the relevant domain. I've left the one intersection in getRangeForAffineAR() to use the smallest intersect heuristic, as there doesn't seem to be any obvious preference there.


Repository:
  rL LLVM

https://reviews.llvm.org/D60035

Files:
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/test/Analysis/ScalarEvolution/extract-highbits-sameconstmask.ll
  llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
  llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
  llvm/test/Analysis/ScalarEvolution/lshr-shl-differentconstmask.ll
  llvm/test/Analysis/ScalarEvolution/sext-mul.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60035.192991.patch
Type: text/x-patch
Size: 15090 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190330/1c2397ff/attachment.bin>


More information about the llvm-commits mailing list