@@ -429,7 +429,7 @@ 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- << module_->getTargetTriple ();
432+ << module_->getTargetTriple (). str () ;
433433
434434 VLOG (2 ) << " LLVM MCJIT execute " << module_->getModuleIdentifier () << " for triple `"
435435 << llvm_target->GetTargetTriple () << " `"
@@ -503,21 +503,34 @@ void LLVMModuleNode::InitORCJIT() {
503503#if TVM_LLVM_VERSION >= 130
504504 // linker
505505 const auto linkerBuilder =
506- [&](llvm::orc::ExecutionSession& session,
507- const llvm::Triple& triple) -> std::unique_ptr<llvm::orc::ObjectLayer> {
506+ #if TVM_LLVM_VERSION >= 210
507+ [&](llvm::orc::ExecutionSession& session)
508+ -> llvm::Expected<std::unique_ptr<llvm::orc::ObjectLayer>> {
509+ #else
510+ [&](llvm::orc::ExecutionSession& session, const llvm::Triple& triple)
511+ -> std::unique_ptr<llvm::orc::ObjectLayer> {
512+ #endif
508513#if _WIN32
509514 auto GetMemMgr = []() { return std::make_unique<llvm::SectionMemoryManager>(); };
510515 auto ObjLinkingLayer =
511516 std::make_unique<llvm::orc::RTDyldObjectLinkingLayer>(session, std::move (GetMemMgr));
512517#else
513518 auto ObjLinkingLayer = std::make_unique<llvm::orc::ObjectLinkingLayer>(session);
514519#endif
520+ #if TVM_LLVM_VERSION >= 210
521+ if (tm_builder.getTargetTriple ().isOSBinFormatCOFF ()) {
522+ #else
515523 if (triple.isOSBinFormatCOFF ()) {
524+ #endif
516525 ObjLinkingLayer->setOverrideObjectFlagsWithResponsibilityFlags (true );
517526 ObjLinkingLayer->setAutoClaimResponsibilityForObjectSymbols (true );
518527 }
528+ #if TVM_LLVM_VERSION >= 210
529+ return llvm::Expected<std::unique_ptr<llvm::orc::ObjectLayer>>(std::move (ObjLinkingLayer));
530+ #else
519531 return ObjLinkingLayer;
520- };
532+ #endif
533+ }; // NOLINT(readability/braces)
521534#endif
522535
523536 // create LLJIT
@@ -532,7 +545,7 @@ void LLVMModuleNode::InitORCJIT() {
532545 .create ());
533546
534547 ICHECK (orcjit_ee_ != nullptr ) << " Failed to initialize LLVM ORCJIT engine for "
535- << module_->getTargetTriple ();
548+ << module_->getTargetTriple (). str () ;
536549
537550 // store ctors
538551 auto ctors = llvm::orc::getConstructors (*module_);
@@ -638,7 +651,11 @@ static void LLVMReflectionRegister() {
638651 // Generate a LLVM module from an input target string
639652 auto module = std::make_unique<llvm::Module>(module_name, *llvm_target->GetContext ());
640653 llvm_target->SetTargetMetadata (module .get ());
654+ #if TVM_LLVM_VERSION >= 210
655+ module ->setTargetTriple (llvm::Triple (llvm_target->GetTargetTriple ()));
656+ #else
641657 module ->setTargetTriple (llvm_target->GetTargetTriple ());
658+ #endif
642659 module ->setDataLayout (llvm_target->GetOrCreateTargetMachine ()->createDataLayout ());
643660 n->Init (std::move (module ), std::move (llvm_instance));
644661 n->SetJITEngine (llvm_target->GetJITEngine ());
0 commit comments