[Mlir-commits] [mlir] [mlir][python] generate value builders (PR #68308)
Jacques Pienaar
llvmlistbot at llvm.org
Mon Oct 9 08:58:53 PDT 2023
================
@@ -968,6 +975,49 @@ static void emitRegionAccessors(const Operator &op, raw_ostream &os) {
}
}
+/// Emits builder that extracts results from op
+static void emitValueBuilder(const Operator &op,
+ llvm::SmallVector<std::string> functionArgs,
+ raw_ostream &os) {
+ // If we are asked to skip default builders, comply.
+ if (op.skipDefaultBuilders())
+ return;
+ auto name = sanitizeName(op.getOperationName());
+ iterator_range<llvm::SplittingIterator> splitName = llvm::split(name, ".");
+ os << llvm::formatv(
+ valueBuilderTemplate,
+ // Drop dialect name and then sanitize again (to catch e.g. func.return).
+ sanitizeName(llvm::join(++splitName.begin(), splitName.end(), "_")),
+ op.getCppClassName(),
+ llvm::join(
+ llvm::map_range(functionArgs,
+ [](const std::string &argAndMaybeDefault) {
+ llvm::SmallVector<llvm::StringRef> argMaybeDefault =
----------------
jpienaar wrote:
Lets hoist some of these out. This nesting is getting a bit much to follow here.
https://github.com/llvm/llvm-project/pull/68308
More information about the Mlir-commits
mailing list