[MLIR] Introduce op trait PolyhedralScope
authorUday Bondhugula <uday@polymagelabs.com>
Sat, 25 Apr 2020 04:24:18 +0000 (09:54 +0530)
committerUday Bondhugula <uday@polymagelabs.com>
Tue, 28 Apr 2020 04:25:31 +0000 (09:55 +0530)
commitdd2c639c3cd397dfef941186fb85c82e4e918425
tree0b145f9e4a8d1c48be2463788ecb4907cb239462
parent011a07c075a13fb0078e70774d7d04b4f63456e7
[MLIR] Introduce op trait PolyhedralScope

Introduce op trait `PolyhedralScope` for ops to define a new scope for
polyhedral optimization / affine dialect purposes, thus generalizing
such scopes beyond FuncOp. Ops to which this trait is attached will
define a new scope for the consideration of SSA values as valid symbols
for the purposes of polyhedral analysis and optimization. Update methods
that check for dim/symbol validity to work based on this trait.

Differential Revision: https://reviews.llvm.org/D78863
13 files changed:
mlir/docs/Dialects/Affine.md
mlir/docs/Traits.md
mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
mlir/include/mlir/Dialect/Affine/IR/AffineOpsBase.td
mlir/include/mlir/Dialect/Affine/Traits.h [new file with mode: 0644]
mlir/include/mlir/IR/Function.h
mlir/lib/Dialect/Affine/IR/AffineOps.cpp
mlir/test/Dialect/Affine/invalid.mlir
mlir/test/Dialect/Affine/ops.mlir
mlir/test/lib/Dialect/Test/TestDialect.cpp
mlir/test/lib/Dialect/Test/TestDialect.h
mlir/test/lib/Dialect/Test/TestOps.td