Add a new dialect interface for the OperationFolder `OpFolderDialectInterface`.
authorRiver Riddle <riverriddle@google.com>
Mon, 2 Sep 2019 03:06:42 +0000 (20:06 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Mon, 2 Sep 2019 03:07:08 +0000 (20:07 -0700)
commit6563b1c4463472d5bdc83a3a62a1da1a3052ce18
treed18db308d1013ab66f2e59fc9806904605862556
parentce702fc8dafab9d8d0db4e61025c65db979cd701
Add a new dialect interface for the OperationFolder `OpFolderDialectInterface`.

This interface will allow for providing hooks to interrop with operation folding. The first hook, 'shouldMaterializeInto', will allow for controlling which region to insert materialized constants into. The folder will generally materialize constants into the top-level isolated region, this allows for materializing into a lower level ancestor region if it is more profitable/correct.

PiperOrigin-RevId: 266702972
mlir/include/mlir/Transforms/FoldUtils.h
mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
mlir/lib/Dialect/Linalg/Transforms/LowerToLoops.cpp
mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
mlir/lib/Transforms/Utils/FoldUtils.cpp
mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
mlir/test/Transforms/constant-fold.mlir
mlir/test/lib/TestDialect/TestDialect.cpp
mlir/test/lib/TestDialect/TestOps.td
mlir/test/lib/Transforms/TestConstantFold.cpp