[Mlir-commits] [mlir] [mlir][vector] Implement speculation for vector.transferx ops (PR #111533)

Andrzej WarzyƄski llvmlistbot at llvm.org
Tue Oct 8 10:18:21 PDT 2024


banach-space wrote:

Thanks for elaborating, that helps!

> Because executing them speculatively is guaranteed not to have any 'implicit behavior' (side effects / trigger UB / etc.): https://mlir.llvm.org/docs/Rationale/SideEffectsAndSpeculation/#categorization.


A lot (most?) things in that doc only really matter when dealing with MemRefs. And the implementation here also implies that:
* when operating on tensors, everything is safe,
* when operating on memrefs, exercise caution.

This just makes me wonder, shouldn't LICM be checking for tensor semantics instead?

> Since linalg.generic/vector.transfer_... ops work on both memref and tensors, they have to be "ConditionallySpeculatable", the condition being if they have memref or tensor semantics.

Or,  we are missing sth like `SpeculableWhenUsingTensorSemantics`.

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


More information about the Mlir-commits mailing list