[PATCH] D124646: [SCEV] Support modelling of same base pointer `select`s in more complex than most trivial cases (when there is a base variable offset)

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 28 16:49:16 PDT 2022


lebedev.ri created this revision.
lebedev.ri added reviewers: efriedma, mkazantsev, reames, fhahn, nikic.
lebedev.ri added a project: LLVM.
Herald added a subscriber: hiraditya.
Herald added a project: All.
lebedev.ri requested review of this revision.

`umin_seq` `select` modelling requires that one of the hands of the select must be a constant.
After we remove pointer base, in all but most trivial cases,
there will likely be some other offset between the base and the selected-between pointers,
and if both of them happen to have some variable offset, we fail,
even if they have *the same* variable offset.

Instead, we should try to factor it out, perhaps that leaves us with a constant in one hand.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D124646

Files:
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/test/Analysis/ScalarEvolution/pointer-select.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124646.425925.patch
Type: text/x-patch
Size: 6008 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220428/13f791a8/attachment.bin>


More information about the llvm-commits mailing list