[Mlir-commits] [mlir] Remove Pure attribute from Linalg::IndexOp. (PR #68894)
Maksim Levental
llvmlistbot at llvm.org
Sun Dec 10 13:26:33 PST 2023
makslevental wrote:
> At some point there used to be `linalg.indexed_generic` which was similar to `linalg.generic` , i.e. a single block region, but in addition to the basic block arguments that represents values from each of the input and init operands, also had basic block arguments that represented the value of the induction variables of the iteration space of the linalg op.
umm since this is before my time (and I'm too lazy to dig through logs...) did this `linalg.indexed_generic` support arbitrary index spaces? I.e., the operands were `memref<k x index>`? If so, why was it dropped? Why not just bring that back? I know lots (many? several?) of people that want arbitrary ([non-rectangular](https://discourse.llvm.org/t/rfc-structured-codegen-beyond-rectangular-arrays/64707)) iteration spaces for linalg ops.
> Maybe we just add a new side-effect mode which is meant to represent CSE-able within a basic block.
I vaguely remember there being some debate on discord about whether `Pure` is the right name to begin with (@sanjoy?). I guess we're stuck with it now (to some extent) but I would be in favor of just `CSEable` as being the trait name corresponding to supporting CSE.
https://github.com/llvm/llvm-project/pull/68894
More information about the Mlir-commits
mailing list