[SCEV] Attempt to define what flags are legal on a SCEV
authorPhilip Reames <listmail@philipreames.com>
Tue, 14 Sep 2021 20:10:17 +0000 (13:10 -0700)
committerPhilip Reames <listmail@philipreames.com>
Tue, 14 Sep 2021 20:13:49 +0000 (13:13 -0700)
commitc4048d8f50aaf2c4c13b8d3e138abc34a22da754
tree0a160d52a31c1cbdebdf62010a8a8eedd959ef4d
parent26b803177456112b4c6c2d30b7c3dc4d439af7e2
[SCEV] Attempt to define what flags are legal on a SCEV

This is an attempt to define what the current semantics are closest too.  Unfortunately, the current implementation does appear to be inconsistent with all semantic variants we've considered.  This semantics is the one which seems to be closest to the spirit of the code, and that matched several long time contributors mental models of how the code "should work".

https://bugs.llvm.org/show_bug.cgi?id=51817 tracks the list of currently known violations of these rules.  A series of follow up patches will be addressing each now that we've defined them to be bugs.

Differential Revision: https://reviews.llvm.org/D109553
llvm/include/llvm/Analysis/ScalarEvolution.h