SliceAnalysis originally was developed in the context of affine.for within mlfunc.
It predates the notion of region.
This revision updates it to not hardcode specific ops like scf::ForOp.
When rooted at an op, the behavior of the slice computation changes as it recurses into the regions of the op. This does not support gathering all values transitively depending on a loop induction variable anymore.
Additional variants rooted at a Value are added to also support the existing behavior.
Details
Details
- Reviewers
ftynse - Commits
- rGd01ea0edaa2e: [mlir] Drop reliance of SliceAnalysis on specific ops.
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Please look at the compilation failure on Windows before submitting.
mlir/include/mlir/Analysis/SliceAnalysis.h | ||
---|---|---|
80–81 | This may break gcc-5, similarly to the other patch with lambdas as default arguments that we debugged on Friday... | |
mlir/lib/Analysis/SliceAnalysis.cpp | ||
85 | FuncOp is still a specific op :) Should we stop at anything IsolatedFromAbove instead? |
mlir/include/mlir/Analysis/SliceAnalysis.h | ||
---|---|---|
80–81 | Moved to llvm::funtion_ref + nullptr default, thanks! |
This may break gcc-5, similarly to the other patch with lambdas as default arguments that we debugged on Friday...