Alias analysis in affine scalar replacement

Hi All,

Recently a kind of alias analysis has been introduced in the affine scalar replacement pass (https://reviews.llvm.org/D104053 by @wsmoses) It’s nice to see that more attention is getting payed to correctness, however I have a couple of questions:

  • There is already a generic local alias analysis implemented by @River707 (LocalAliasAnalysis), it seems that they have a large overlap in functionality. Any plans to converge them?
  • The change breaks some examples that relied on the silent assumption that memrefs passed as parameters to a function do not alias. Seems like we need a mechanism to mark certain memrefs as non-aliasing. Any plans to implement this?