[PATCH] D96534: [SCEV] Use both known bits and sign bits when computing range of SCEV unknowns

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 11 12:01:11 PST 2021


reames created this revision.
reames added reviewers: mkazantsev, fhahn.
Herald added subscribers: dantrushin, hiraditya, mcrosier.
Herald added a reviewer: bollu.
reames requested review of this revision.
Herald added a project: LLVM.

Posting mostly for initial discussion.  The tests need rebased on autogened commits, and some extra tests added before this is actually ready, but decided to post first to give time for discussion.

The core concern here is compile time.  Do we think it's reasonable to perform both recursive walks here?  As can be seen, the improvement in results are noticeable - particular for signed ranges of positive numbers.  Do we think the tradeoffs are likely worthwhile?


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D96534

Files:
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/test/Analysis/ScalarEvolution/add-expr-pointer-operand-sorting.ll
  llvm/test/Analysis/ScalarEvolution/ashr.ll
  llvm/test/Analysis/ScalarEvolution/extract-highbits-sameconstmask.ll
  llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
  llvm/test/Analysis/ScalarEvolution/max-be-count-not-constant.ll
  llvm/test/Analysis/ScalarEvolution/ptrtoint-constantexpr-loop.ll
  llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
  llvm/test/Analysis/ScalarEvolution/sext-to-zext.ll
  llvm/test/Analysis/StackSafetyAnalysis/local.ll
  llvm/test/Analysis/StackSafetyAnalysis/memintrin.ll
  llvm/test/Transforms/PhaseOrdering/scev-custom-dl.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96534.323109.patch
Type: text/x-patch
Size: 52474 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210211/e8f6bfa0/attachment.bin>


More information about the llvm-commits mailing list