5 Commits

Author SHA1 Message Date
Javed Absar
c13f806f17
[mlir][linalg] raise generic to named ops. (#110421)
Add support for specializing linalg.broadcast and linalg.transform from generic. Also, does some refactoring to reuse specialization checks, migrating some common uses to op interface methods.
2024-10-11 15:27:27 +01:00
Kazu Hirata
165f45354a
[mlir] Use llvm::is_contained (NFC) (#102714) 2024-08-09 21:42:19 -07:00
Javed Absar
3efac5c68a
[MLIR][Linalg] Add pass to convert linalg.generic back to named ops (#95656)
Add a new mlir-opt  pass `--linalg-specialize-generic-ops` which lifts generic,
where possible, to linalg named ops.
Much like `-linalg-generalize-named-ops` lowers named ops to linalg.generic .
Also add patterns to recognize contractions which can be specialized from 
linalg.generic to named op: `linalg.{batch_}?matmul{_transpose_(a|b)}?`
2024-06-30 19:37:51 +01:00
Javed Absar
33b7833891
[MLIR][Linalg] Add more specialize patterns (#91153)
Currently only linalg.copy is recognized when trying to specialize
linalg.generics back to named op. This diff enables recognition of more
generic to named op e.g. linalg.fill, elemwise unary/binary.
2024-05-20 23:10:51 +01:00
lorenzo chelini
6cbcb79350
[MLIR][Linalg] Introduce SpecializeOp (#70326)
Introduce an operation to specialize linalg.generics, for example,
detecting a linalg.generic that is semantically equivalent to a
linalg.copy and replacing the former with the latter. After code
generation, it is helpful to lower named operations to vendor-optimized
libraries.
2023-10-31 10:07:35 +01:00