diff options
author | Nicolas Vasilache <ntv@google.com> | 2020-05-15 00:22:21 -0400 |
---|---|---|
committer | Nicolas Vasilache <ntv@google.com> | 2020-05-15 00:24:03 -0400 |
commit | f1b972041adf565c08d1abca41068d2adcf62702 (patch) | |
tree | d30292dc4f3f6904b1dce76ca9130e67060914ce /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | 940d949435e88dcbf154fbd310d148295781ea04 (diff) | |
download | llvm-f1b972041adf565c08d1abca41068d2adcf62702.zip llvm-f1b972041adf565c08d1abca41068d2adcf62702.tar.gz llvm-f1b972041adf565c08d1abca41068d2adcf62702.tar.bz2 |
[mlir][Linalg] Start a LinalgToStandard pass and move conversion to library calls.
This revision starts decoupling the include the kitchen sink behavior of Linalg to LLVM lowering by inserting a -convert-linalg-to-std pass.
The lowering of linalg ops to function calls was previously lowering to memref descriptors by having both linalg -> std and std -> LLVM patterns in the same rewrite.
When separating this step, a new issue occurred: the layout is automatically type-erased by this process. This revision therefore introduces memref casts to perform these type erasures explicitly. To connect everything end-to-end, the LLVM lowering of MemRefCastOp is relaxed because it is artificially more restricted than the op semantics. The op semantics already guarantee that source and target MemRefTypes are cast-compatible. An invalid lowering test now becomes valid and is removed.
Differential Revision: https://reviews.llvm.org/D79468
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions