Alias analysis in affine scalar replacement

Hi All,

Recently a kind of alias analysis has been introduced in the affine scalar replacement pass (⚙ D104053 [MLIR] Correct memrefdataflow behavior in the presence of cast and other operations 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?