[mlir] Unroll-and-jam loops with iter_args.
authorAmy Zhuang <amy.zhuang@intel.com>
Tue, 28 Sep 2021 20:54:15 +0000 (13:54 -0700)
committerAmy Zhuang <amy.zhuang@intel.com>
Tue, 28 Sep 2021 21:13:27 +0000 (14:13 -0700)
commit7ab14b8886d9ddaca1f8fc8a34ef8f03af208f26
treec87cd6af6a66c862ffe2856086d8dea2981aa18a
parent86df5a2fa832cdb42928c7a6670eb927f04b98d4
[mlir] Unroll-and-jam loops with iter_args.

Unroll-and-jam currently doesn't work when the loop being unroll-and-jammed
or any of its inner loops has iter_args. This patch modifies the
unroll-and-jam utility to support loops with iter_args.

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D110085
mlir/include/mlir/Analysis/AffineAnalysis.h
mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
mlir/include/mlir/Transforms/LoopUtils.h
mlir/lib/Analysis/AffineAnalysis.cpp
mlir/lib/Dialect/Affine/IR/AffineOps.cpp
mlir/lib/Dialect/Affine/Transforms/LoopUnrollAndJam.cpp
mlir/lib/Transforms/Utils/LoopUtils.cpp
mlir/test/Dialect/Affine/unroll-jam.mlir