[MLIR] Update linalg.conv lowering to use affine load in the absence of padding
authorUday Bondhugula <uday@polymagelabs.com>
Mon, 25 May 2020 12:10:44 +0000 (17:40 +0530)
committerUday Bondhugula <uday@polymagelabs.com>
Fri, 5 Jun 2020 06:58:30 +0000 (12:28 +0530)
commit0f6999af88a08bd430699e72982caa9daf6fa604
tree0788f3f6aad03f04b8e7c7127ff75cb6e47b3a6b
parent70ad03d93818532ef19f149f8ff89bcd8af80163
[MLIR] Update linalg.conv lowering to use affine load in the absence of padding

Update linalg to affine lowering for convop to use affine load for input
whenever there is no padding. It had always been using std.loads because
max in index functions (needed for non-zero padding if not materializing
zeros) couldn't be represented in the non-zero padding cases.

In the future, the non-zero padding case could also be made to use
affine - either by materializing or using affine.execute_region. The
latter approach will not impact the scf/std output obtained after
lowering out affine.

Differential Revision: https://reviews.llvm.org/D81191
mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
mlir/test/Dialect/Linalg/affine.mlir