@@ -429,7 +429,11 @@ void LLVMModuleNode::InitMCJIT() {
429429 // create MCJIT
430430 mcjit_ee_ = builder.create (tm.release ());
431431 ICHECK (mcjit_ee_ != nullptr ) << " Failed to initialize LLVM MCJIT engine for "
432+ #if TVM_LLVM_VERSION >= 210
433+ << module_->getTargetTriple ().str ();
434+ #else
432435 << module_->getTargetTriple ();
436+ #endif
433437
434438 VLOG (2 ) << " LLVM MCJIT execute " << module_->getModuleIdentifier () << " for triple `"
435439 << llvm_target->GetTargetTriple () << " `"
@@ -503,21 +507,34 @@ void LLVMModuleNode::InitORCJIT() {
503507#if TVM_LLVM_VERSION >= 130
504508 // linker
505509 const auto linkerBuilder =
510+ #if TVM_LLVM_VERSION >= 210
511+ [&](llvm::orc::ExecutionSession& session)
512+ -> llvm::Expected<std::unique_ptr<llvm::orc::ObjectLayer>> {
513+ #else
506514 [&](llvm::orc::ExecutionSession& session,
507515 const llvm::Triple& triple) -> std::unique_ptr<llvm::orc::ObjectLayer> {
516+ #endif
508517#if _WIN32
509518 auto GetMemMgr = []() { return std::make_unique<llvm::SectionMemoryManager>(); };
510519 auto ObjLinkingLayer =
511520 std::make_unique<llvm::orc::RTDyldObjectLinkingLayer>(session, std::move (GetMemMgr));
512521#else
513522 auto ObjLinkingLayer = std::make_unique<llvm::orc::ObjectLinkingLayer>(session);
514523#endif
524+ #if TVM_LLVM_VERSION >= 210
525+ if (tm_builder.getTargetTriple ().isOSBinFormatCOFF ()) {
526+ #else
515527 if (triple.isOSBinFormatCOFF ()) {
528+ #endif
516529 ObjLinkingLayer->setOverrideObjectFlagsWithResponsibilityFlags (true );
517530 ObjLinkingLayer->setAutoClaimResponsibilityForObjectSymbols (true );
518531 }
532+ #if TVM_LLVM_VERSION >= 210
533+ return llvm::Expected<std::unique_ptr<llvm::orc::ObjectLayer>>(std::move (ObjLinkingLayer));
534+ #else
519535 return ObjLinkingLayer;
520- };
536+ #endif
537+ }; // NOLINT(readability/braces)
521538#endif
522539
523540 // create LLJIT
@@ -532,7 +549,11 @@ void LLVMModuleNode::InitORCJIT() {
532549 .create ());
533550
534551 ICHECK (orcjit_ee_ != nullptr ) << " Failed to initialize LLVM ORCJIT engine for "
552+ #if TVM_LLVM_VERSION >= 210
553+ << module_->getTargetTriple ().str ();
554+ #else
535555 << module_->getTargetTriple ();
556+ #endif
536557
537558 // store ctors
538559 auto ctors = llvm::orc::getConstructors (*module_);
@@ -638,7 +659,11 @@ static void LLVMReflectionRegister() {
638659 // Generate a LLVM module from an input target string
639660 auto module = std::make_unique<llvm::Module>(module_name, *llvm_target->GetContext ());
640661 llvm_target->SetTargetMetadata (module .get ());
662+ #if TVM_LLVM_VERSION >= 210
663+ module ->setTargetTriple (llvm::Triple (llvm_target->GetTargetTriple ()));
664+ #else
641665 module ->setTargetTriple (llvm_target->GetTargetTriple ());
666+ #endif
642667 module ->setDataLayout (llvm_target->GetOrCreateTargetMachine ()->createDataLayout ());
643668 n->Init (std::move (module ), std::move (llvm_instance));
644669 n->SetJITEngine (llvm_target->GetJITEngine ());
0 commit comments