Add lowering of LinalgLibraryOps to linalg.load + linalg.store.
authorNicolas Vasilache <ntv@google.com>
Mon, 20 May 2019 15:04:40 +0000 (08:04 -0700)
committerMehdi Amini <joker.eph@gmail.com>
Mon, 20 May 2019 20:49:02 +0000 (13:49 -0700)
commit9b58691e749091543fbaa70b2fcd8f62e025e214
tree5ec781058415b8355a8a8d11e307b9943d6f0b93
parent34cbd26d64fc02b343cf180db3c9f56a374ab1fd
Add lowering of LinalgLibraryOps to linalg.load + linalg.store.

    This CL adds a pass to lower out of dot,matvec,matmul etc and into a combination of affine.for, linalg.load and linalg.store operations.
    Such operations can then later lowered to LLVM.
    This CL essentially performs op expansion using EDSCs and factors out a few common utils from Tiling.cpp.

--

PiperOrigin-RevId: 249049518
mlir/include/mlir/Linalg/IR/LinalgOps.h
mlir/include/mlir/Linalg/IR/LinalgOps.td
mlir/include/mlir/Linalg/Passes.h
mlir/include/mlir/Linalg/Utils/Utils.h
mlir/lib/Linalg/IR/LinalgOps.cpp
mlir/lib/Linalg/Transforms/LowerToLoops.cpp [new file with mode: 0644]
mlir/lib/Linalg/Transforms/Tiling.cpp
mlir/lib/Linalg/Utils/Utils.cpp
mlir/test/Linalg/loops.mlir [new file with mode: 0644]