llvm-project/mlir/examples
Nicolas Vasilache 923b33ea16 Normalize MemRefType lowering to LLVM as strided MemRef descriptor
This CL finishes the implementation of the lowering part of the [strided memref RFC](https://groups.google.com/a/tensorflow.org/forum/#!topic/mlir/MaL8m2nXuio).

Strided memrefs correspond conceptually to the following templated C++ struct:
```
template <typename Elem, size_t Rank>
struct {
  Elem *ptr;
  int64_t offset;
  int64_t sizes[Rank];
  int64_t strides[Rank];
};
```
The linearization procedure for address calculation for strided memrefs is the same as for linalg views:
`base_offset + SUM_i index_i * stride_i`.

The following CL will unify Linalg and Standard by removing !linalg.view in favor of strided memrefs.

PiperOrigin-RevId: 272033399
2019-09-30 11:58:54 -07:00
..
Linalg Normalize MemRefType lowering to LLVM as strided MemRef descriptor 2019-09-30 11:58:54 -07:00
toy Normalize lowering of MemRef types 2019-09-24 11:21:49 -07:00
CMakeLists.txt Fix build for the Linalg example dialect with MacOS 2019-04-08 19:17:56 -07:00