7777#include " mlir/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.h"
7878#include " mlir/ExecutionEngine/ExecutionEngine.h"
7979#include " mlir/ExecutionEngine/OptUtils.h"
80+ #include " mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
8081#include " mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
82+ #include " mlir/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.h"
8183
8284#include < llvm/Support/raw_sha1_ostream.h>
8385
@@ -341,9 +343,9 @@ std::vector<intptr_t> JIT::run(::mlir::ModuleOp &module,
341343 }
342344 if (cached) {
343345 module = cached;
344- std::cerr << " using cached module" << std::endl;
346+ // std::cerr << "using cached module" << std::endl;
345347 } else {
346- std::cerr << " compiling..." << std::endl;
348+ // std::cerr << "compiling..." << std::endl;
347349 cache.push_back (std::make_pair (cksm, module ));
348350 }
349351 }
@@ -404,15 +406,18 @@ static const char *pass_pipeline =
404406 " linalg-bufferize,bufferization-bufferize,linalg-detensorize,tensor-"
405407 " bufferize,finalizing-bufferize,convert-linalg-to-parallel-loops),"
406408 " canonicalize,fold-memref-alias-ops,expand-strided-metadata,convert-"
407- " math-to-funcs,convert-math-to-libm,lower-affine,convert-scf-to-cf,"
408- " finalize-memref-to-llvm,convert-func-to-llvm,reconcile-unrealized-"
409+ " math-to-funcs,lower-affine,convert-scf-to-cf,"
410+ " finalize-memref-to-llvm,convert-math-to-llvm,convert-func-to-llvm,"
411+ " reconcile-unrealized-"
409412 " casts" ;
410413JIT::JIT ()
411414 : _context(::mlir::MLIRContext::Threading::DISABLED), _pm(&_context),
412415 _verbose (false ) {
413416 // Register the translation from ::mlir to LLVM IR, which must happen before
414417 // we can JIT-compile.
415418 ::mlir::registerLLVMDialectTranslation (_context);
419+ ::mlir::registerBuiltinDialectTranslation (_context);
420+ ::mlir::registerOpenMPDialectTranslation (_context);
416421 // load the dialects we use
417422 _context.getOrLoadDialect <::mlir::arith::ArithDialect>();
418423 _context.getOrLoadDialect <::mlir::func::FuncDialect>();
@@ -460,6 +465,7 @@ void init() {
460465 // ::mlir::registerAllPasses();
461466 ::mlir::registerSCFPasses ();
462467 ::mlir::registerSCFToControlFlowPass ();
468+ ::mlir::registerConvertSCFToOpenMPPass ();
463469 ::mlir::registerShapePasses ();
464470 ::mlir::registerConvertShapeToStandardPass ();
465471 ::mlir::tensor::registerTensorPasses ();
@@ -476,6 +482,11 @@ void init() {
476482 ::mlir::registerCanonicalizerPass ();
477483 ::mlir::registerConvertAffineToStandardPass ();
478484 ::mlir::registerFinalizeMemRefToLLVMConversionPass ();
485+ ::mlir::registerArithToLLVMConversionPass ();
486+ ::mlir::registerConvertMathToLLVMPass ();
487+ ::mlir::registerConvertControlFlowToLLVMPass ();
488+ ::mlir::registerConvertLinalgToLLVMPass ();
489+ ::mlir::registerConvertOpenMPToLLVMPass ();
479490 ::mlir::memref::registerMemRefPasses ();
480491 ::mlir::registerReconcileUnrealizedCastsPass ();
481492
0 commit comments