@@ -122,6 +122,40 @@ def EmitC_CallOpaqueOp : EmitC_Op<"call_opaque", []> {
122
122
Variadic<AnyType>:$operands
123
123
);
124
124
let results = (outs Variadic<AnyType>);
125
+ let builders = [
126
+ OpBuilder<(ins
127
+ "::mlir::TypeRange":$resultTypes,
128
+ "::llvm::StringRef":$callee,
129
+ "::mlir::ArrayRef<Attribute>":$args,
130
+ "::mlir::ArrayRef<Attribute>":$template_args,
131
+ "::mlir::ValueRange":$operands), [{
132
+ build($_builder, $_state, resultTypes, callee,
133
+ $_builder.getArrayAttr(args), $_builder.getArrayAttr(template_args),
134
+ operands);
135
+ }]
136
+ >,
137
+ OpBuilder<(ins
138
+ "::mlir::TypeRange":$resultTypes,
139
+ "::llvm::StringRef":$callee,
140
+ "::mlir::ValueRange":$operands,
141
+ CArg<"::mlir::ArrayAttr", "{}">:$args,
142
+ CArg<"::mlir::ArrayAttr", "{}">:$template_args), [{
143
+ build($_builder, $_state, resultTypes, callee, args, template_args,
144
+ operands);
145
+ }]
146
+ >,
147
+ OpBuilder<(ins
148
+ "::mlir::TypeRange":$resultTypes,
149
+ "::llvm::StringRef":$callee,
150
+ "::mlir::ValueRange":$operands,
151
+ CArg<"::mlir::ArrayRef<Attribute>", "{}">:$args,
152
+ CArg<"::mlir::ArrayRef<Attribute>", "{}">:$template_args), [{
153
+ build($_builder, $_state, resultTypes, callee, args, template_args,
154
+ operands);
155
+ }]
156
+ >
157
+ ];
158
+
125
159
let assemblyFormat = [{
126
160
$callee `(` $operands `)` attr-dict `:` functional-type($operands, results)
127
161
}];
0 commit comments