[Mlir-commits] [mlir] [mlir][vector] Hoist transfer pairs when the source is AssumeAlignmentOp (PR #144809)

Andrzej WarzyƄski llvmlistbot at llvm.org
Thu Jun 19 12:26:45 PDT 2025


banach-space wrote:

> After the op has a result, the hoisting is not working if transfer ops operate on AssumeAlignmentOp.

Isn't the new behaviour correct? I might be mistaken, but to me this creates an alias:
```mlir
  %assume_align = memref.assume_alignment %memref0, 64 : memref<?x?xf32>
```
Without proper alias-analysis, the logic updated in this PR should behave conservatively, i.e. block hoisting. When `memref.assume_alignment` didn't return a value, there was no alias and hoisting was safe. But that's no longer the case. 

To me the lack of hoisting feels like quite an unfortunate side-effect of https://github.com/llvm/llvm-project/commit/ffb9bbfd0745dc22e1fd6edd7b62f72b91f4f6de.

WDYT?

https://github.com/llvm/llvm-project/pull/144809


More information about the Mlir-commits mailing list