#include <stdio.h>
#include "Standalone-c/Dialects.h"
#include "mlir-c/IR.h"
#include "mlir-c/RegisterEverything.h"
static void registerAllUpstreamDialects(MlirContext ctx) {
MlirDialectRegistry registry = mlirDialectRegistryCreate();
mlirRegisterAllDialects(registry);
mlirContextAppendDialectRegistry(ctx, registry);
mlirDialectRegistryDestroy(registry);
}
int main(int argc, char **argv) {
MlirContext ctx = mlirContextCreate();
registerAllUpstreamDialects(ctx);
mlirDialectHandleRegisterDialect(mlirGetDialectHandle__standalone__(), ctx);
MlirModule module = mlirModuleCreateParse(
ctx, mlirStringRefCreateFromCString("%0 = arith.constant 2 : i32\n"
"%1 = standalone.foo %0 : i32\n"));
if (mlirModuleIsNull(module)) {
printf("ERROR: Could not parse.\n");
mlirContextDestroy(ctx);
return 1;
}
MlirOperation op = mlirModuleGetOperation(module);
mlirOperationDump(op);
mlirModuleDestroy(module);
mlirContextDestroy(ctx);
return 0;
}