Skip to content

Commit a0e8ac3

Browse files
ftynsechencha3
authored andcommitted
[mlir] split transform interfaces into a separate library (llvm#85221)
Transform interfaces are implemented, direction or via extensions, in libraries belonging to multiple other dialects. Those dialects don't need to depend on the non-interface part of the transform dialect, which includes the growing number of ops and transitive dependency footprint. Split out the interfaces into a separate library. This in turn requires flipping the dependency from the interface on the dialect that has crept in because both co-existed in one library. The interface shouldn't depend on the transform dialect either. As a consequence of splitting, the capability of the interpreter to automatically walk the payload IR to identify payload ops of a certain kind based on the type used for the entry point symbol argument is disabled. This is a good move by itself as it simplifies the interpreter logic. This functionality can be trivially replaced by a `transform.structured.match` operation.
1 parent 1de0903 commit a0e8ac3

File tree

102 files changed

+239
-168
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+239
-168
lines changed

mlir/docs/Tutorials/transform/Ch2.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ The operations themselves can be defined using ODS, exactly in the same way as r
6262
#define MY_EXTENSION
6363
6464
include "mlir/Dialect/Transform/IR/TransformDialect.td"
65-
include "mlir/Dialect/Transform/IR/TransformInterfaces.td"
65+
include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.td"
6666
include "mlir/IR/OpBase.td"
6767
include "mlir/Interfaces/SideEffectInterfaces.td"
6868
@@ -124,7 +124,7 @@ This will generate two files, `MyExtension.h.inc` and `MyExtension.cpp.inc`, tha
124124
```c++
125125
// In MyExtension.h.
126126
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
127-
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
127+
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
128128

129129
#define GET_OP_CLASSES
130130
#include "MyExtension.h.inc"

mlir/examples/transform/Ch2/include/MyExtension.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
#include "mlir/Bytecode/BytecodeOpInterface.h"
1515
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
16-
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
16+
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
1717

1818
#define GET_OP_CLASSES
1919
#include "MyExtension.h.inc"

mlir/examples/transform/Ch2/include/MyExtension.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#define MY_EXTENSION
1616

1717
include "mlir/Dialect/Transform/IR/TransformDialect.td"
18-
include "mlir/Dialect/Transform/IR/TransformInterfaces.td"
18+
include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.td"
1919
include "mlir/IR/OpBase.td"
2020
include "mlir/Interfaces/SideEffectInterfaces.td"
2121

mlir/examples/transform/Ch2/lib/MyExtension.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
#include "mlir/Dialect/Func/IR/FuncOps.h"
1616
#include "mlir/Dialect/SCF/IR/SCF.h"
1717
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
18-
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
1918
#include "mlir/Dialect/Transform/IR/TransformTypes.h"
19+
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
2020
#include "mlir/IR/DialectRegistry.h"
2121
#include "mlir/IR/Operation.h"
2222
#include "mlir/Interfaces/SideEffectInterfaces.h"

mlir/examples/transform/Ch3/include/MyExtension.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@
1313

1414
#include "mlir/Bytecode/BytecodeOpInterface.h"
1515
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
16-
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
16+
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
1717

1818
namespace mlir {
1919
class CallOpInterface;
2020
namespace func {
2121
class CallOp;
2222
} // namespace func
23+
namespace transform {
24+
class OperationType;
25+
} // namespace transform
2326
} // namespace mlir
2427

2528
#define GET_TYPEDEF_CLASSES

mlir/examples/transform/Ch3/include/MyExtension.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
include "MyExtensionTypes.td"
1818
include "mlir/Dialect/Transform/IR/TransformDialect.td"
19-
include "mlir/Dialect/Transform/IR/TransformInterfaces.td"
19+
include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.td"
2020
include "mlir/Dialect/Transform/IR/TransformTypes.td"
2121
include "mlir/IR/OpBase.td"
2222
include "mlir/Interfaces/SideEffectInterfaces.td"

mlir/examples/transform/Ch3/include/MyExtensionTypes.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
include "mlir/IR/AttrTypeBase.td"
1818
include "mlir/Dialect/Transform/IR/TransformDialect.td"
19-
include "mlir/Dialect/Transform/IR/TransformInterfaces.td"
19+
include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.td"
2020

2121
// Transform dialect allows additional types to be defined and injected.
2222
def CallOpInterfaceHandle

mlir/examples/transform/Ch3/lib/MyExtension.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "mlir/Dialect/Func/IR/FuncOps.h"
1616
#include "mlir/Dialect/SCF/IR/SCF.h"
1717
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
18+
#include "mlir/Dialect/Transform/IR/TransformTypes.h"
1819
#include "mlir/IR/DialectImplementation.h"
1920
#include "mlir/Interfaces/CallInterfaces.h"
2021
#include "llvm/ADT/TypeSwitch.h"

mlir/examples/transform/Ch4/include/MyExtension.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
#include "mlir/Bytecode/BytecodeOpInterface.h"
1515
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
16-
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
1716
#include "mlir/Dialect/Transform/IR/TransformOps.h"
17+
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
1818

1919
namespace mlir {
2020
class CallOpInterface;

mlir/examples/transform/Ch4/include/MyExtension.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
include "mlir/Dialect/Transform/IR/MatchInterfaces.td"
1818
include "mlir/Dialect/Transform/IR/TransformDialect.td"
19-
include "mlir/Dialect/Transform/IR/TransformInterfaces.td"
19+
include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.td"
2020
include "mlir/IR/OpBase.td"
2121
include "mlir/Interfaces/SideEffectInterfaces.td"
2222

0 commit comments

Comments
 (0)