[PATCH] D98222: [SCEV] Use trip count information to improve shift recurrence ranges

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 8 16:25:47 PST 2021


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

This patch exploits the knowledge that we may be running many fewer than bitwidth iterations of the loop, and may be able to disallow the overflow case.  This patch specifically implements only the shl case, but this can be generalized to ashr and lshr without difficulty.

In my motivating example (a multiple dimension loop nest w/a shl recurrence at the outer level), this results in a massive improvement in scev-aa results.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D98222

Files:
  llvm/include/llvm/Analysis/ScalarEvolution.h
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98222.329156.patch
Type: text/x-patch
Size: 18919 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210309/f7b1a2c4/attachment.bin>


More information about the llvm-commits mailing list