Makes this operation runnable on CPU by generating MLIR instructions
that are eventually folded into an LLVM IR constant for the mask.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
1223 | There is some mechanism a pattern can tell the conversion infra it creates operations that the same pattern can match again, but this iteration is finite. I suppose it's worth using even if the pattern seems to work as is. |
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
1223 | Thanks, yes, I saw the recent developments on that (hasBoundedRewriteRecursion() right?). For the vector->vector progressive lowering, we use "applyPatternsAndFoldGreedily" so that it does not really matter, yet (other than of course making sure that the iteration terminates, for most cases by stripping of a rank or so). But it does not hurt to add, although probably in a new CL for all the rules in this file so far. |
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
1223 | Last time I looked at it applyPatternsAndFoldGreedily applied the same pattern no more than 10 times. We may want to remove or raise this bound if hasBoundedRewriteRecursion tells it's okay. |
mlir/lib/Dialect/Vector/VectorTransforms.cpp | ||
---|---|---|
1223 | Ah, thanks for that background! |
There is some mechanism a pattern can tell the conversion infra it creates operations that the same pattern can match again, but this iteration is finite. I suppose it's worth using even if the pattern seems to work as is.