feat(python): compiler api with round_trip func

This commit is contained in:
youben11
2021-08-03 16:49:04 +01:00
committed by Quentin Bourgerie
parent 4e6579e019
commit 30d33ee45f
5 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
#include "CompilerAPIModule.h"
#include "zamalang/Dialect/HLFHE/IR/HLFHEDialect.h"
#include "zamalang/Dialect/HLFHE/IR/HLFHETypes.h"
#include <mlir/Parser.h>
#include <mlir/Dialect/StandardOps/IR/Ops.h>
#include <pybind11/pybind11.h>
#include <pybind11/pytypes.h>
#include <pybind11/stl.h>
#include <string>
using namespace zamalang;
/// Populate the compiler API python module.
void zamalang::python::populateCompilerAPISubmodule(pybind11::module &m) {
m.doc() = "Zamalang compiler python API";
m.def("round_trip", [](std::string mlir_input) {
mlir::MLIRContext context;
context.getOrLoadDialect<mlir::zamalang::HLFHE::HLFHEDialect>();
context.getOrLoadDialect<mlir::StandardOpsDialect>();
auto mlir_module = mlir::parseSourceString(mlir_input, &context);
if (!mlir_module) {
throw std::logic_error("mlir parsing failed");
}
std::string result;
llvm::raw_string_ostream os(result);
mlir_module->print(os);
return os.str();
});
}