Sizes of tiles (subviews) are bigger by 1 than they should. Let's consider

1D convolution without batches or channels. Furthermore let m iterate over

the output and n over the kernel then input is accessed with m + n. In tiling

subview sizes for convolutions are computed by applying requested tile size

together with kernel size to the above mentioned expression thus let's say

for tile size of 2 the subview size is 2 + size(n), which is bigger by one

than it should since we move kernel only once. The problem behind it is that

range is not turned into closed interval before the composition. This commit

fixes the problem by turning ranges first into closed intervals by substracting

1 and after the composition back to half open by adding 1.

PHAB_REVIEW=D86638

Please use

mlir::edsc::op::operator+and write it assize + std_constant_index(1)to get the proper affine_apply operation generated.Without that things won't canonicalize nicely.

See e.g. mlir/test/EDSC/builder-api-test.cpp line 82 for some C++ and the generated IR.