[Mlir-commits] [mlir] mlir: add an operation to EmitC for function template instantiation (PR #100895)
Christopher Bate
llvmlistbot at llvm.org
Sat Jul 27 13:07:18 PDT 2024
================
@@ -1260,5 +1260,20 @@ def EmitC_SubscriptOp : EmitC_Op<"subscript", []> {
let assemblyFormat = "$value `[` $indices `]` attr-dict `:` functional-type(operands, results)";
}
+def EmitC_InstantiateFunctionTemplateOp : EmitC_Op<"instantiate_function_template", []> {
+ let summary = "Instantiate template operation";
+ let description = [{
+ Instantiate a function template with a given set of types
+ (given by the values as argument to this operation) to obtain
+ a function pointer.
+ }];
+ let arguments = (ins
+ Arg<StrAttr, "the C++ function to instantiate">:$callee,
+ Variadic<EmitCType>:$args
+ );
+ let results = (outs EmitC_PointerType);
+ let assemblyFormat = "$callee `(` $args `)` attr-dict `:` functional-type($args, results)";
----------------
christopherbate wrote:
I don't believe there would be an issue with instead using `<` ... `>` instead; did you already try that? This format makes the operation look like a "call" instead of an instantiation.
https://github.com/llvm/llvm-project/pull/100895
More information about the Mlir-commits
mailing list