[llvm] [DA] remove constraint propagation and coupled/separable subscripts (PR #160924)
Ryotaro Kasuga via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 3 05:25:29 PDT 2025
kasuga-fj wrote:
> > I can share the potentially problematic parts I've noticed, if that would be helpful.
>
> Yes, please. Make those comments in bug reports: it can be as short as "function() has those lines of code that seem to be wrong in version <sha_key> at <line_numbers>" and we will work on fixing those.
This is a list of bugs I remembered for now, which I don't think I have been clearly stated anywhere. Please also refer to [my discourse post](https://discourse.llvm.org/t/rfc-a-new-pass-as-an-alternative-to-dependenceanalysis/88403#p-352397-issues-in-da-4).
| Where | Why |
|-|-|
| `unifySubscriptType` | Maybe this should be applied recursively to an AddRec, after we implement the appropriate handling for wrap of an AddRec |
| `removeMatchExtensions` | Removing `zext` can change the result (consider the value of `zext(x)` when `x` is a negative value) |
| `DependenceInfo::isKnownPredicate` | Same as above, probably we are not allowed to purge `zext` in general. Also, it's unclear what happens if `getMinusSCEV` wraps |
| `DependenceInfo::isKnownNonNegative` | The inference from `inbounds` here is incorrect (cf. https://github.com/llvm/llvm-project/issues/160912) |
| `DependenceInfo::isKnownLessThan` | At the very least, calling `getTruncateOrZeroExtend` here is incorrect |
| `findBoundsXX` (e.g., `findBoundsLT`) | The equations in the comment above each function (following "Wolfe gives the equations") don't appear to consider overflow |
https://github.com/llvm/llvm-project/pull/160924
More information about the llvm-commits
mailing list