[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