@@ -532,12 +532,18 @@ CL_EXTERN_DEFMETHOD(Target_O, (llvm::TargetMachine * (llvm::Target::*)(llvm::Str
532532 const llvm::TargetOptions&, Optional<Reloc::Model>,
533533 Optional<CodeModel::Model>, CodeGenOpt::Level, bool ) const ) &
534534 llvm::Target::createTargetMachine);
535- #else
535+ #elif LLVM_VERSION_MAJOR == 17
536536CL_EXTERN_DEFMETHOD (Target_O,
537537 (llvm::TargetMachine * (llvm::Target::*)(llvm::StringRef, llvm::StringRef, llvm::StringRef,
538538 const llvm::TargetOptions&, std::optional<Reloc::Model>,
539539 std::optional<CodeModel::Model>, CodeGenOpt::Level, bool ) const ) &
540540 llvm::Target::createTargetMachine);
541+ #else
542+ CL_EXTERN_DEFMETHOD (Target_O,
543+ (llvm::TargetMachine * (llvm::Target::*)(llvm::StringRef, llvm::StringRef, llvm::StringRef,
544+ const llvm::TargetOptions&, std::optional<Reloc::Model>,
545+ std::optional<CodeModel::Model>, CodeGenOptLevel, bool ) const ) &
546+ llvm::Target::createTargetMachine);
541547#endif
542548
543549}; // namespace llvmo
@@ -647,24 +653,41 @@ SYMBOL_EXPORT_SC_(LlvmoPkg, CodeGenFileType_Null);
647653SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenFileType_AssemblyFile);
648654SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenFileType_ObjectFile);
649655CL_BEGIN_ENUM (llvm::CodeGenFileType, _sym_CodeGenFileType, " CodeGenFileType" );
656+ #if LLVM_VERSION_MAJOR < 18
650657CL_VALUE_ENUM (_sym_CodeGenFileType_Null, llvm::CGFT_Null);
651658CL_VALUE_ENUM (_sym_CodeGenFileType_AssemblyFile, llvm::CGFT_AssemblyFile);
652659CL_VALUE_ENUM (_sym_CodeGenFileType_ObjectFile, llvm::CGFT_ObjectFile);
653660;
661+ #else
662+ CL_VALUE_ENUM (_sym_CodeGenFileType_Null, llvm::CodeGenFileType::Null);
663+ CL_VALUE_ENUM (_sym_CodeGenFileType_AssemblyFile, llvm::CodeGenFileType::AssemblyFile);
664+ CL_VALUE_ENUM (_sym_CodeGenFileType_ObjectFile, llvm::CodeGenFileType::ObjectFile);
665+ ;
666+ #endif
654667CL_END_ENUM (_sym_CodeGenFileType);
655668
656669SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenOpt);
657670SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenOpt_None);
658671SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenOpt_Less);
659672SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenOpt_Default);
660673SYMBOL_EXPORT_SC_ (LlvmoPkg, CodeGenOpt_Aggressive);
674+ #if LLVM_VERSION_MAJOR < 18
661675CL_BEGIN_ENUM (llvm::CodeGenOpt::Level, _sym_CodeGenOpt, " CodeGenOpt" );
662676CL_VALUE_ENUM (_sym_CodeGenOpt_None, llvm::CodeGenOpt::None);
663677CL_VALUE_ENUM (_sym_CodeGenOpt_Less, llvm::CodeGenOpt::Less);
664678CL_VALUE_ENUM (_sym_CodeGenOpt_Default, llvm::CodeGenOpt::Default);
665679CL_VALUE_ENUM (_sym_CodeGenOpt_Aggressive, llvm::CodeGenOpt::Aggressive);
666680;
667681CL_END_ENUM (_sym_CodeGenOpt);
682+ #else
683+ CL_BEGIN_ENUM (llvm::CodeGenOptLevel, _sym_CodeGenOpt, " CodeGenOpt" );
684+ CL_VALUE_ENUM (_sym_CodeGenOpt_None, llvm::CodeGenOptLevel::None);
685+ CL_VALUE_ENUM (_sym_CodeGenOpt_Less, llvm::CodeGenOptLevel::Less);
686+ CL_VALUE_ENUM (_sym_CodeGenOpt_Default, llvm::CodeGenOptLevel::Default);
687+ CL_VALUE_ENUM (_sym_CodeGenOpt_Aggressive, llvm::CodeGenOptLevel::Aggressive);
688+ ;
689+ CL_END_ENUM (_sym_CodeGenOpt);
690+ #endif
668691
669692SYMBOL_EXPORT_SC_ (LlvmoPkg, RelocModel);
670693SYMBOL_EXPORT_SC_ (LlvmoPkg, RelocModel_undefined);
@@ -875,7 +898,6 @@ SYMBOL_EXPORT_SC_(LlvmoPkg, OSType_OpenBSD);
875898SYMBOL_EXPORT_SC_ (LlvmoPkg, OSType_Solaris);
876899SYMBOL_EXPORT_SC_ (LlvmoPkg, OSType_Win32);
877900SYMBOL_EXPORT_SC_ (LlvmoPkg, OSType_Haiku);
878- SYMBOL_EXPORT_SC_ (LlvmoPkg, OSType_Minix);
879901SYMBOL_EXPORT_SC_ (LlvmoPkg, OSType_RTEMS);
880902SYMBOL_EXPORT_SC_ (LlvmoPkg, OSType_NaCl);
881903// SYMBOL_EXPORT_SC_(LlvmoPkg, OSType_CNK);
@@ -900,7 +922,6 @@ CL_VALUE_ENUM(_sym_OSType_OpenBSD, llvm::Triple::OpenBSD);
900922CL_VALUE_ENUM (_sym_OSType_Solaris, llvm::Triple::Solaris);
901923CL_VALUE_ENUM (_sym_OSType_Win32, llvm::Triple::Win32);
902924CL_VALUE_ENUM (_sym_OSType_Haiku, llvm::Triple::Haiku);
903- CL_VALUE_ENUM (_sym_OSType_Minix, llvm::Triple::Minix);
904925CL_VALUE_ENUM (_sym_OSType_RTEMS, llvm::Triple::RTEMS);
905926CL_VALUE_ENUM (_sym_OSType_NaCl, llvm::Triple::NaCl);
906927// CL_VALUE_ENUM(_sym_OSType_CNK, llvm::Triple::CNK);
@@ -1607,9 +1628,11 @@ CL_EXTERN_DEFMETHOD(ExecutionEngine_O, &llvm::ExecutionEngine::getOrEmitGlobalVa
16071628
16081629namespace llvmo {
16091630
1631+ #if LLVM_VERSION_MAJOR < 18
16101632CL_DEFUN bool llvm_sys__isOpaqueOrPointeeTypeMatches (Type_sp ptrType, Type_sp ty) {
16111633 return dyn_cast<llvm::PointerType>(ptrType->wrappedPtr ())->isOpaqueOrPointeeTypeMatches (ty->wrappedPtr ());
16121634}
1635+ #endif
16131636
16141637}; // namespace llvmo
16151638
@@ -1854,7 +1877,11 @@ CL_DEFUN core::T_mv llvm_sys__getDebugLocInfo(Instruction_sp instr) {
18541877CL_DOCSTRING (R"dx( Erase the instruction from its parent basic block and return the next instruction or NIL)dx" );
18551878DOCGROUP (clasp);
18561879CL_DEFUN void llvm_sys__instruction_eraseFromParent (Instruction_sp instr) {
1880+ #if LLVM_VERSION_MAJOR < 18
18571881 [[maybe_unused]] llvm::SymbolTableList<llvm::Instruction>::iterator next = instr->wrappedPtr ()->eraseFromParent ();
1882+ #else
1883+ [[maybe_unused]] llvm::AllocaInst::InstListType::iterator next = instr->wrappedPtr ()->eraseFromParent ();
1884+ #endif
18581885}
18591886
18601887CL_DOCSTRING (R"dx( Return the next non-debug instruction or NIL if there is none)dx" );
@@ -1869,8 +1896,10 @@ CL_DEFUN core::T_sp llvm_sys__instruction_getNextNonDebugInstruction(Instruction
18691896
18701897CL_LISPIFY_NAME (" insertAfter" );
18711898CL_EXTERN_DEFMETHOD (Instruction_O, &llvm::Instruction::insertAfter);
1899+ #if LLVM_VERSION_MAJOR < 18
18721900CL_LISPIFY_NAME (" insertBefore" );
18731901CL_EXTERN_DEFMETHOD (Instruction_O, &llvm::Instruction::insertBefore);
1902+ #endif
18741903
18751904CL_LISPIFY_NAME (" terminatorInstP" );
18761905CL_DEFMETHOD bool Instruction_O::terminatorInstP () const { return this ->wrappedPtr ()->isTerminator (); }
@@ -3451,6 +3480,7 @@ CL_EXTERN_DEFUN((llvm::IntegerType * (*)(llvm::LLVMContext & C)) & llvm::Type::g
34513480CL_LISPIFY_NAME (" type-get-int128-ty" );
34523481CL_EXTERN_DEFUN ((llvm::IntegerType * (*)(llvm::LLVMContext & C)) & llvm::Type::getInt128Ty);
34533482
3483+ #if LLVM_VERSION_MAJOR < 18
34543484CL_LISPIFY_NAME (" type-get-float-ptr-ty" );
34553485CL_EXTERN_DEFUN ((llvm::PointerType * (*)(llvm::LLVMContext & C, unsigned AS)) & llvm::Type::getFloatPtrTy);
34563486CL_LISPIFY_NAME (" type-get-double-ptr-ty" );
@@ -3469,6 +3499,7 @@ CL_EXTERN_DEFUN((llvm::PointerType * (*)(llvm::LLVMContext & C, unsigned AS)) &
34693499CL_LISPIFY_NAME (" type-get-int64-ptr-ty" );
34703500CL_EXTERN_DEFUN ((llvm::PointerType * (*)(llvm::LLVMContext & C, unsigned AS)) & llvm::Type::getInt64PtrTy);
34713501;
3502+ #endif
34723503
34733504}; // namespace llvmo
34743505
0 commit comments