Add a canonicalization step for extract_strided_metadata(subview).
The goal is to get rid of the subview while expressing its effects directly on the offset and strides of the base object.
In other words, this canonicalization replaces:
baseBuffer, offset, sizes, strides = extract_strided_metadata( subview(memref, subOffset, subSizes, subStrides))
With
baseBuffer, baseOffset, baseSizes, baseStrides = extract_strided_metadata(memref) strides#i = baseStrides#i * subSizes#i offset = baseOffset + sum(subOffset#i * strides#i) sizes = subSizes