#ifdef ALL_ENUMS
core::enum_<llvm::CmpInst::Predicate>(llvmo::_sym_STARCmpInstPredicateSTAR,"llvm::CmpInst::Predicate")
  .value(llvmo::_sym_ICMP_SLE,llvm::CmpInst::ICMP_SLE)
  .value(llvmo::_sym_ICMP_SLT,llvm::CmpInst::ICMP_SLT)
  .value(llvmo::_sym_ICMP_SGE,llvm::CmpInst::ICMP_SGE)
  .value(llvmo::_sym_ICMP_SGT,llvm::CmpInst::ICMP_SGT)
  .value(llvmo::_sym_ICMP_ULE,llvm::CmpInst::ICMP_ULE)
  .value(llvmo::_sym_ICMP_ULT,llvm::CmpInst::ICMP_ULT)
  .value(llvmo::_sym_ICMP_UGE,llvm::CmpInst::ICMP_UGE)
  .value(llvmo::_sym_ICMP_UGT,llvm::CmpInst::ICMP_UGT)
  .value(llvmo::_sym_ICMP_NE,llvm::CmpInst::ICMP_NE)
  .value(llvmo::_sym_ICMP_EQ,llvm::CmpInst::ICMP_EQ)
  .value(llvmo::_sym_FCMP_TRUE,llvm::CmpInst::FCMP_TRUE)
  .value(llvmo::_sym_FCMP_UNE,llvm::CmpInst::FCMP_UNE)
  .value(llvmo::_sym_FCMP_ULE,llvm::CmpInst::FCMP_ULE)
  .value(llvmo::_sym_FCMP_ULT,llvm::CmpInst::FCMP_ULT)
  .value(llvmo::_sym_FCMP_UGE,llvm::CmpInst::FCMP_UGE)
  .value(llvmo::_sym_FCMP_UGT,llvm::CmpInst::FCMP_UGT)
  .value(llvmo::_sym_FCMP_UEQ,llvm::CmpInst::FCMP_UEQ)
  .value(llvmo::_sym_FCMP_UNO,llvm::CmpInst::FCMP_UNO)
  .value(llvmo::_sym_FCMP_ORD,llvm::CmpInst::FCMP_ORD)
  .value(llvmo::_sym_FCMP_ONE,llvm::CmpInst::FCMP_ONE)
  .value(llvmo::_sym_FCMP_OLE,llvm::CmpInst::FCMP_OLE)
  .value(llvmo::_sym_FCMP_OLT,llvm::CmpInst::FCMP_OLT)
  .value(llvmo::_sym_FCMP_OGE,llvm::CmpInst::FCMP_OGE)
  .value(llvmo::_sym_FCMP_OGT,llvm::CmpInst::FCMP_OGT)
  .value(llvmo::_sym_FCMP_OEQ,llvm::CmpInst::FCMP_OEQ)
  .value(llvmo::_sym_FCMP_FALSE,llvm::CmpInst::FCMP_FALSE)
;
core::enum_<llvm::Instruction::CastOps>(llvmo::_sym_STARInstructionCastOpsSTAR,"llvm::Instruction::CastOps")
  .value(llvmo::_sym_BitCast,llvm::Instruction::BitCast)
  .value(llvmo::_sym_IntToPtr,llvm::Instruction::IntToPtr)
  .value(llvmo::_sym_PtrToInt,llvm::Instruction::PtrToInt)
  .value(llvmo::_sym_FPExt,llvm::Instruction::FPExt)
  .value(llvmo::_sym_FPTrunc,llvm::Instruction::FPTrunc)
  .value(llvmo::_sym_SIToFP,llvm::Instruction::SIToFP)
  .value(llvmo::_sym_UIToFP,llvm::Instruction::UIToFP)
  .value(llvmo::_sym_FPToSI,llvm::Instruction::FPToSI)
  .value(llvmo::_sym_FPToUI,llvm::Instruction::FPToUI)
  .value(llvmo::_sym_SExt,llvm::Instruction::SExt)
  .value(llvmo::_sym_ZExt,llvm::Instruction::ZExt)
  .value(llvmo::_sym_Trunc,llvm::Instruction::Trunc)
;
core::enum_<llvm::Instruction::BinaryOps>(llvmo::_sym_STARBinaryOpsSTAR,"llvm::Instruction::BinaryOps")
  .value(llvmo::_sym_Xor,llvm::Instruction::Xor)
  .value(llvmo::_sym_Or,llvm::Instruction::Or)
  .value(llvmo::_sym_And,llvm::Instruction::And)
  .value(llvmo::_sym_AShr,llvm::Instruction::AShr)
  .value(llvmo::_sym_LShr,llvm::Instruction::LShr)
  .value(llvmo::_sym_Shl,llvm::Instruction::Shl)
  .value(llvmo::_sym_FRem,llvm::Instruction::FRem)
  .value(llvmo::_sym_SRem,llvm::Instruction::SRem)
  .value(llvmo::_sym_URem,llvm::Instruction::URem)
  .value(llvmo::_sym_FDiv,llvm::Instruction::FDiv)
  .value(llvmo::_sym_SDiv,llvm::Instruction::SDiv)
  .value(llvmo::_sym_UDiv,llvm::Instruction::UDiv)
  .value(llvmo::_sym_FMul,llvm::Instruction::FMul)
  .value(llvmo::_sym_Mul,llvm::Instruction::Mul)
  .value(llvmo::_sym_FSub,llvm::Instruction::FSub)
  .value(llvmo::_sym_Sub,llvm::Instruction::Sub)
  .value(llvmo::_sym_FAdd,llvm::Instruction::FAdd)
  .value(llvmo::_sym_Add,llvm::Instruction::Add)
;
core::enum_<llvm::AtomicRMWInst::BinOp>(llvmo::_sym_STARAtomicRMWInstBinOpSTAR,"llvm::AtomicRMWInst::BinOp")
  .value(llvmo::_sym_UMin,llvm::AtomicRMWInst::UMin)
  .value(llvmo::_sym_UMax,llvm::AtomicRMWInst::UMax)
  .value(llvmo::_sym_Min,llvm::AtomicRMWInst::Min)
  .value(llvmo::_sym_Max,llvm::AtomicRMWInst::Max)
  .value(llvmo::_sym_Xor,llvm::AtomicRMWInst::Xor)
  .value(llvmo::_sym_Or,llvm::AtomicRMWInst::Or)
  .value(llvmo::_sym_Nand,llvm::AtomicRMWInst::Nand)
  .value(llvmo::_sym_And,llvm::AtomicRMWInst::And)
  .value(llvmo::_sym_Sub,llvm::AtomicRMWInst::Sub)
  .value(llvmo::_sym_Add,llvm::AtomicRMWInst::Add)
  .value(llvmo::_sym_Xchg,llvm::AtomicRMWInst::Xchg)
;
core::enum_<llvm::SyncScope::ID>(llvmo::_sym_STARsync_scopeSTAR,"llvm::SyncScope::ID")
  .value(llvmo::_sym_System,llvm::SyncScope::System)
  .value(llvmo::_sym_SingleThread,llvm::SyncScope::SingleThread)
;
core::enum_<llvm::AtomicOrdering>(llvmo::_sym_STARatomic_orderingSTAR,"llvm::AtomicOrdering")
  .value(llvmo::_sym_SequentiallyConsistent,llvm::AtomicOrdering::SequentiallyConsistent)
  .value(llvmo::_sym_AcquireRelease,llvm::AtomicOrdering::AcquireRelease)
  .value(llvmo::_sym_Release,llvm::AtomicOrdering::Release)
  .value(llvmo::_sym_Acquire,llvm::AtomicOrdering::Acquire)
  .value(llvmo::_sym_Monotonic,llvm::AtomicOrdering::Monotonic)
  .value(llvmo::_sym_Unordered,llvm::AtomicOrdering::Unordered)
  .value(llvmo::_sym_NotAtomic,llvm::AtomicOrdering::NotAtomic)
;
core::enum_<llvm::GlobalValue::UnnamedAddr>(llvmo::_sym_STARGlobalValueUnnamedAddrSTAR,"llvm::GlobalValue::UnnamedAddr")
  .value(llvmo::_sym_Global,llvm::GlobalValue::UnnamedAddr::Global)
  .value(llvmo::_sym_Local,llvm::GlobalValue::UnnamedAddr::Local)
  .value(llvmo::_sym_None,llvm::GlobalValue::UnnamedAddr::None)
;
core::enum_<llvm::GlobalValue::ThreadLocalMode>(llvmo::_sym_STARglobal_ThreadLocalModesSTAR,"llvm::GlobalValue::ThreadLocalMode")
  .value(llvmo::_sym_LocalExecTLSModel,llvm::GlobalValue::LocalExecTLSModel)
  .value(llvmo::_sym_InitialExecTLSModel,llvm::GlobalValue::InitialExecTLSModel)
  .value(llvmo::_sym_LocalDynamicTLSModel,llvm::GlobalValue::LocalDynamicTLSModel)
  .value(llvmo::_sym_GeneralDynamicTLSModel,llvm::GlobalValue::GeneralDynamicTLSModel)
  .value(llvmo::_sym_NotThreadLocal,llvm::GlobalValue::NotThreadLocal)
;
core::enum_<llvm::GlobalValue::LinkageTypes>(llvmo::_sym_STARglobal_value_linkage_typesSTAR,"llvm::GlobalValue::LinkageTypes")
  .value(llvmo::_sym_CommonLinkage,llvm::GlobalValue::CommonLinkage)
  .value(llvmo::_sym_ExternalWeakLinkage,llvm::GlobalValue::ExternalWeakLinkage)
  .value(llvmo::_sym_PrivateLinkage,llvm::GlobalValue::PrivateLinkage)
  .value(llvmo::_sym_InternalLinkage,llvm::GlobalValue::InternalLinkage)
  .value(llvmo::_sym_AppendingLinkage,llvm::GlobalValue::AppendingLinkage)
  .value(llvmo::_sym_WeakODRLinkage,llvm::GlobalValue::WeakODRLinkage)
  .value(llvmo::_sym_WeakAnyLinkage,llvm::GlobalValue::WeakAnyLinkage)
  .value(llvmo::_sym_LinkOnceODRLinkage,llvm::GlobalValue::LinkOnceODRLinkage)
  .value(llvmo::_sym_LinkOnceAnyLinkage,llvm::GlobalValue::LinkOnceAnyLinkage)
  .value(llvmo::_sym_AvailableExternallyLinkage,llvm::GlobalValue::AvailableExternallyLinkage)
  .value(llvmo::_sym_ExternalLinkage,llvm::GlobalValue::ExternalLinkage)
;
core::enum_<llvm::Module::ModFlagBehavior>(llvmo::_sym_STARmoduleModFlagBehaviorSTAR,"llvm::Module::ModFlagBehavior")
  .value(llvmo::_sym_moduleFlagAppendUnique,llvm::Module::AppendUnique)
  .value(llvmo::_sym_moduleFlagAppend,llvm::Module::Append)
  .value(llvmo::_sym_moduleFlagOverride,llvm::Module::Override)
  .value(llvmo::_sym_moduleFlagRequire,llvm::Module::Require)
  .value(llvmo::_sym_moduleFlagWarning,llvm::Module::Warning)
  .value(llvmo::_sym_moduleFlagError,llvm::Module::Error)
;
core::enum_<llvmo::ClaspCallingConv>(llvmo::_sym_CallingConv,"CallingConv")
  .value(llvmo::_sym_fastcc,llvmo::ClaspCallingConv::Fast)
  .value(llvmo::_sym_C,llvmo::ClaspCallingConv::C)
;
core::enum_<llvm::Attribute::AttrKind>(llvmo::_sym_AttributeEnum,"Attribute")
  .value(llvmo::_sym_AttributeNonLazyBind,llvm::Attribute::NonLazyBind)
  .value(llvmo::_sym_AttributeUWTable,llvm::Attribute::UWTable)
  .value(llvmo::_sym_AttributeReturnsTwice,llvm::Attribute::ReturnsTwice)
  .value(llvmo::_sym_AttributeStackAlignment,llvm::Attribute::StackAlignment)
  .value(llvmo::_sym_AttributeInlineHint,llvm::Attribute::InlineHint)
  .value(llvmo::_sym_AttributeNaked,llvm::Attribute::Naked)
  .value(llvmo::_sym_AttributeNoImplicitFloat,llvm::Attribute::NoImplicitFloat)
  .value(llvmo::_sym_AttributeNoRedZone,llvm::Attribute::NoRedZone)
  .value(llvmo::_sym_AttributeAlignment,llvm::Attribute::Alignment)
  .value(llvmo::_sym_AttributeStackProtectReq,llvm::Attribute::StackProtectReq)
  .value(llvmo::_sym_AttributeStackProtect,llvm::Attribute::StackProtect)
  .value(llvmo::_sym_AttributeOptimizeNone,llvm::Attribute::OptimizeNone)
  .value(llvmo::_sym_AttributeOptimizeForSize,llvm::Attribute::OptimizeForSize)
  .value(llvmo::_sym_AttributeAlwaysInline,llvm::Attribute::AlwaysInline)
  .value(llvmo::_sym_AttributeNoInline,llvm::Attribute::NoInline)
  .value(llvmo::_sym_AttributeReadOnly,llvm::Attribute::ReadOnly)
  .value(llvmo::_sym_AttributeReadNone,llvm::Attribute::ReadNone)
  .value(llvmo::_sym_AttributeNest,llvm::Attribute::Nest)
  .value(llvmo::_sym_AttributeByVal,llvm::Attribute::ByVal)
  .value(llvmo::_sym_AttributeNoAlias,llvm::Attribute::NoAlias)
  .value(llvmo::_sym_AttributeNoUnwind,llvm::Attribute::NoUnwind)
  .value(llvmo::_sym_AttributeStructRet,llvm::Attribute::StructRet)
  .value(llvmo::_sym_AttributeInReg,llvm::Attribute::InReg)
  .value(llvmo::_sym_AttributeNoReturn,llvm::Attribute::NoReturn)
  .value(llvmo::_sym_AttributeSExt,llvm::Attribute::SExt)
  .value(llvmo::_sym_AttributeZExt,llvm::Attribute::ZExt)
  .value(llvmo::_sym_AttributeInAlloca,llvm::Attribute::InAlloca)
  .value(llvmo::_sym_AttributeNone,llvm::Attribute::None)
;
core::enum_<llvm::Triple::ObjectFormatType>(llvmo::_sym_ObjectFormatType,"ObjectFormatType")
  .value(llvmo::_sym_ObjectFormatType_MachO,llvm::Triple::MachO)
  .value(llvmo::_sym_ObjectFormatType_ELF,llvm::Triple::ELF)
  .value(llvmo::_sym_ObjectFormatType_COFF,llvm::Triple::COFF)
  .value(llvmo::_sym_ObjectFormatType_UnknownObjectFormat,llvm::Triple::UnknownObjectFormat)
;
core::enum_<llvm::Triple::EnvironmentType>(llvmo::_sym_EnvironmentType,"EnvironmentType")
  .value(llvmo::_sym_EnvironmentType_Cygnus,llvm::Triple::Cygnus)
  .value(llvmo::_sym_EnvironmentType_Itanium,llvm::Triple::Itanium)
  .value(llvmo::_sym_EnvironmentType_MSVC,llvm::Triple::MSVC)
  .value(llvmo::_sym_EnvironmentType_Android,llvm::Triple::Android)
  .value(llvmo::_sym_EnvironmentType_EABIHF,llvm::Triple::EABIHF)
  .value(llvmo::_sym_EnvironmentType_EABI,llvm::Triple::EABI)
  .value(llvmo::_sym_EnvironmentType_CODE16,llvm::Triple::CODE16)
  .value(llvmo::_sym_EnvironmentType_GNUX32,llvm::Triple::GNUX32)
  .value(llvmo::_sym_EnvironmentType_GNUEABIHF,llvm::Triple::GNUEABIHF)
  .value(llvmo::_sym_EnvironmentType_GNUEABI,llvm::Triple::GNUEABI)
  .value(llvmo::_sym_EnvironmentType_GNU,llvm::Triple::GNU)
  .value(llvmo::_sym_EnvironmentType_UnknownEnvironment,llvm::Triple::UnknownEnvironment)
;
core::enum_<llvm::Triple::OSType>(llvmo::_sym_OSType,"OSType")
  .value(llvmo::_sym_OSType_NVCL,llvm::Triple::NVCL)
  .value(llvmo::_sym_OSType_CUDA,llvm::Triple::CUDA)
  .value(llvmo::_sym_OSType_AIX,llvm::Triple::AIX)
  .value(llvmo::_sym_OSType_RTEMS,llvm::Triple::RTEMS)
  .value(llvmo::_sym_OSType_Haiku,llvm::Triple::Haiku)
  .value(llvmo::_sym_OSType_Win32,llvm::Triple::Win32)
  .value(llvmo::_sym_OSType_Solaris,llvm::Triple::Solaris)
  .value(llvmo::_sym_OSType_OpenBSD,llvm::Triple::OpenBSD)
  .value(llvmo::_sym_OSType_NetBSD,llvm::Triple::NetBSD)
  .value(llvmo::_sym_OSType_MacOSX,llvm::Triple::MacOSX)
  .value(llvmo::_sym_OSType_Lv2,llvm::Triple::Lv2)
  .value(llvmo::_sym_OSType_Linux,llvm::Triple::Linux)
  .value(llvmo::_sym_OSType_KFreeBSD,llvm::Triple::KFreeBSD)
  .value(llvmo::_sym_OSType_IOS,llvm::Triple::IOS)
  .value(llvmo::_sym_OSType_FreeBSD,llvm::Triple::FreeBSD)
  .value(llvmo::_sym_OSType_DragonFly,llvm::Triple::DragonFly)
  .value(llvmo::_sym_OSType_Darwin,llvm::Triple::Darwin)
  .value(llvmo::_sym_OSType_UnknownOS,llvm::Triple::UnknownOS)
;
core::enum_<llvm::Triple::VendorType>(llvmo::_sym_VendorType,"VendorType")
  .value(llvmo::_sym_VendorType_CSR,llvm::Triple::CSR)
  .value(llvmo::_sym_VendorType_NVIDIA,llvm::Triple::NVIDIA)
  .value(llvmo::_sym_VendorType_MipsTechnologies,llvm::Triple::MipsTechnologies)
  .value(llvmo::_sym_VendorType_ImaginationTechnologies,llvm::Triple::ImaginationTechnologies)
  .value(llvmo::_sym_VendorType_IBM,llvm::Triple::IBM)
  .value(llvmo::_sym_VendorType_Freescale,llvm::Triple::Freescale)
  .value(llvmo::_sym_VendorType_SCEI,llvm::Triple::SCEI)
  .value(llvmo::_sym_VendorType_PC,llvm::Triple::PC)
  .value(llvmo::_sym_VendorType_Apple,llvm::Triple::Apple)
  .value(llvmo::_sym_VendorType_UnknownVendor,llvm::Triple::UnknownVendor)
;
core::enum_<llvm::Triple::SubArchType>(llvmo::_sym_SubArchType,"SubArchType")
  .value(llvmo::_sym_SubArchType_KalimbaSubArch_v5,llvm::Triple::KalimbaSubArch_v5)
  .value(llvmo::_sym_SubArchType_KalimbaSubArch_v4,llvm::Triple::KalimbaSubArch_v4)
  .value(llvmo::_sym_SubArchType_KalimbaSubArch_v3,llvm::Triple::KalimbaSubArch_v3)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v4t,llvm::Triple::ARMSubArch_v4t)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v5te,llvm::Triple::ARMSubArch_v5te)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v5,llvm::Triple::ARMSubArch_v5)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v6t2,llvm::Triple::ARMSubArch_v6t2)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v6m,llvm::Triple::ARMSubArch_v6m)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v6,llvm::Triple::ARMSubArch_v6)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v7s,llvm::Triple::ARMSubArch_v7s)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v7m,llvm::Triple::ARMSubArch_v7m)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v7em,llvm::Triple::ARMSubArch_v7em)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v7,llvm::Triple::ARMSubArch_v7)
  .value(llvmo::_sym_SubArchType_ARMSubArch_v8,llvm::Triple::ARMSubArch_v8)
  .value(llvmo::_sym_SubArchType_NoSubArch,llvm::Triple::NoSubArch)
;
core::enum_<llvm::Triple::ArchType>(llvmo::_sym_ArchType,"ArchType")
  .value(llvmo::_sym_ArchType_kalimba,llvm::Triple::kalimba)
  .value(llvmo::_sym_ArchType_spir64,llvm::Triple::spir64)
  .value(llvmo::_sym_ArchType_spir,llvm::Triple::spir)
  .value(llvmo::_sym_ArchType_hsail64,llvm::Triple::hsail64)
  .value(llvmo::_sym_ArchType_hsail,llvm::Triple::hsail)
  .value(llvmo::_sym_ArchType_amdil64,llvm::Triple::amdil64)
  .value(llvmo::_sym_ArchType_amdil,llvm::Triple::amdil)
  .value(llvmo::_sym_ArchType_nvptx64,llvm::Triple::nvptx64)
  .value(llvmo::_sym_ArchType_nvptx,llvm::Triple::nvptx)
  .value(llvmo::_sym_ArchType_xcore,llvm::Triple::xcore)
  .value(llvmo::_sym_ArchType_x86_64,llvm::Triple::x86_64)
  .value(llvmo::_sym_ArchType_x86,llvm::Triple::x86)
  .value(llvmo::_sym_ArchType_thumbeb,llvm::Triple::thumbeb)
  .value(llvmo::_sym_ArchType_thumb,llvm::Triple::thumb)
  .value(llvmo::_sym_ArchType_tce,llvm::Triple::tce)
  .value(llvmo::_sym_ArchType_systemz,llvm::Triple::systemz)
  .value(llvmo::_sym_ArchType_sparcv9,llvm::Triple::sparcv9)
  .value(llvmo::_sym_ArchType_sparc,llvm::Triple::sparc)
  .value(llvmo::_sym_ArchType_r600,llvm::Triple::r600)
  .value(llvmo::_sym_ArchType_ppc64le,llvm::Triple::ppc64le)
  .value(llvmo::_sym_ArchType_ppc64,llvm::Triple::ppc64)
  .value(llvmo::_sym_ArchType_ppc,llvm::Triple::ppc)
  .value(llvmo::_sym_ArchType_msp430,llvm::Triple::msp430)
  .value(llvmo::_sym_ArchType_mips64el,llvm::Triple::mips64el)
  .value(llvmo::_sym_ArchType_mips64,llvm::Triple::mips64)
  .value(llvmo::_sym_ArchType_mipsel,llvm::Triple::mipsel)
  .value(llvmo::_sym_ArchType_mips,llvm::Triple::mips)
  .value(llvmo::_sym_ArchType_hexagon,llvm::Triple::hexagon)
  .value(llvmo::_sym_ArchType_aarch64,llvm::Triple::aarch64)
  .value(llvmo::_sym_ArchType_armeb,llvm::Triple::armeb)
  .value(llvmo::_sym_ArchType_arm,llvm::Triple::arm)
  .value(llvmo::_sym_ArchType_UnknownArch,llvm::Triple::UnknownArch)
;
core::enum_<llvm::CodeModel::Model>(llvmo::_sym_CodeModel,"CodeModel")
  .value(llvmo::_sym_CodeModel_Large,llvm::CodeModel::Large)
  .value(llvmo::_sym_CodeModel_Medium,llvm::CodeModel::Medium)
  .value(llvmo::_sym_CodeModel_Kernel,llvm::CodeModel::Kernel)
  .value(llvmo::_sym_CodeModel_Small,llvm::CodeModel::Small)
;
core::enum_<llvm::Reloc::Model>(llvmo::_sym_RelocModel,"RelocModel")
  .value(llvmo::_sym_RelocModel_DynamicNoPIC,llvm::Reloc::Model::DynamicNoPIC)
  .value(llvmo::_sym_RelocModel_PIC_,llvm::Reloc::Model::PIC_)
  .value(llvmo::_sym_RelocModel_Static,llvm::Reloc::Model::Static)
;
core::enum_<llvm::CodeGenOptLevel>(llvmo::_sym_CodeGenOpt,"CodeGenOpt")
  .value(llvmo::_sym_CodeGenOpt_Aggressive,llvm::CodeGenOptLevel::Aggressive)
  .value(llvmo::_sym_CodeGenOpt_Default,llvm::CodeGenOptLevel::Default)
  .value(llvmo::_sym_CodeGenOpt_Less,llvm::CodeGenOptLevel::Less)
  .value(llvmo::_sym_CodeGenOpt_None,llvm::CodeGenOptLevel::None)
;
core::enum_<llvm::CodeGenFileType>(llvmo::_sym_CodeGenFileType,"CodeGenFileType")
  .value(llvmo::_sym_CodeGenFileType_ObjectFile,llvm::CodeGenFileType::ObjectFile)
  .value(llvmo::_sym_CodeGenFileType_AssemblyFile,llvm::CodeGenFileType::AssemblyFile)
  .value(llvmo::_sym_CodeGenFileType_Null,llvm::CodeGenFileType::Null)
;
core::enum_<llvm::dwarf::Tag>(llvmo::_sym_STARdwarfConstantsSTAR,"llvm::dwarf::Constants")
  .value(llvmo::_sym_DW_TAG_hi_user,llvm::dwarf::DW_TAG_hi_user)
  .value(llvmo::_sym_DW_TAG_APPLE_property,llvm::dwarf::DW_TAG_APPLE_property)
  .value(llvmo::_sym_DW_TAG_lo_user,llvm::dwarf::DW_TAG_lo_user)
  .value(llvmo::_sym_DW_TAG_GNU_formal_parameter_pack,llvm::dwarf::DW_TAG_GNU_formal_parameter_pack)
  .value(llvmo::_sym_DW_TAG_GNU_template_parameter_pack,llvm::dwarf::DW_TAG_GNU_template_parameter_pack)
  .value(llvmo::_sym_DW_TAG_GNU_template_template_param,llvm::dwarf::DW_TAG_GNU_template_template_param)
  .value(llvmo::_sym_DW_TAG_class_template,llvm::dwarf::DW_TAG_class_template)
  .value(llvmo::_sym_DW_TAG_function_template,llvm::dwarf::DW_TAG_function_template)
  .value(llvmo::_sym_DW_TAG_format_label,llvm::dwarf::DW_TAG_format_label)
  .value(llvmo::_sym_DW_TAG_MIPS_loop,llvm::dwarf::DW_TAG_MIPS_loop)
  .value(llvmo::_sym_DW_TAG_template_alias,llvm::dwarf::DW_TAG_template_alias)
  .value(llvmo::_sym_DW_TAG_rvalue_reference_type,llvm::dwarf::DW_TAG_rvalue_reference_type)
  .value(llvmo::_sym_DW_TAG_type_unit,llvm::dwarf::DW_TAG_type_unit)
  .value(llvmo::_sym_DW_TAG_shared_type,llvm::dwarf::DW_TAG_shared_type)
  .value(llvmo::_sym_DW_TAG_condition,llvm::dwarf::DW_TAG_condition)
  .value(llvmo::_sym_DW_TAG_imported_unit,llvm::dwarf::DW_TAG_imported_unit)
  .value(llvmo::_sym_DW_TAG_partial_unit,llvm::dwarf::DW_TAG_partial_unit)
  .value(llvmo::_sym_DW_TAG_unspecified_type,llvm::dwarf::DW_TAG_unspecified_type)
  .value(llvmo::_sym_DW_TAG_imported_module,llvm::dwarf::DW_TAG_imported_module)
  .value(llvmo::_sym_DW_TAG_namespace,llvm::dwarf::DW_TAG_namespace)
  .value(llvmo::_sym_DW_TAG_interface_type,llvm::dwarf::DW_TAG_interface_type)
  .value(llvmo::_sym_DW_TAG_restrict_type,llvm::dwarf::DW_TAG_restrict_type)
  .value(llvmo::_sym_DW_TAG_dwarf_procedure,llvm::dwarf::DW_TAG_dwarf_procedure)
  .value(llvmo::_sym_DW_TAG_volatile_type,llvm::dwarf::DW_TAG_volatile_type)
  .value(llvmo::_sym_DW_TAG_variable,llvm::dwarf::DW_TAG_variable)
  .value(llvmo::_sym_DW_TAG_variant_part,llvm::dwarf::DW_TAG_variant_part)
  .value(llvmo::_sym_DW_TAG_try_block,llvm::dwarf::DW_TAG_try_block)
  .value(llvmo::_sym_DW_TAG_thrown_type,llvm::dwarf::DW_TAG_thrown_type)
  .value(llvmo::_sym_DW_TAG_template_value_parameter,llvm::dwarf::DW_TAG_template_value_parameter)
  .value(llvmo::_sym_DW_TAG_template_type_parameter,llvm::dwarf::DW_TAG_template_type_parameter)
  .value(llvmo::_sym_DW_TAG_subprogram,llvm::dwarf::DW_TAG_subprogram)
  .value(llvmo::_sym_DW_TAG_packed_type,llvm::dwarf::DW_TAG_packed_type)
  .value(llvmo::_sym_DW_TAG_namelist_item,llvm::dwarf::DW_TAG_namelist_item)
  .value(llvmo::_sym_DW_TAG_namelist,llvm::dwarf::DW_TAG_namelist)
  .value(llvmo::_sym_DW_TAG_friend,llvm::dwarf::DW_TAG_friend)
  .value(llvmo::_sym_DW_TAG_file_type,llvm::dwarf::DW_TAG_file_type)
  .value(llvmo::_sym_DW_TAG_enumerator,llvm::dwarf::DW_TAG_enumerator)
  .value(llvmo::_sym_DW_TAG_constant,llvm::dwarf::DW_TAG_constant)
  .value(llvmo::_sym_DW_TAG_const_type,llvm::dwarf::DW_TAG_const_type)
  .value(llvmo::_sym_DW_TAG_catch_block,llvm::dwarf::DW_TAG_catch_block)
  .value(llvmo::_sym_DW_TAG_base_type,llvm::dwarf::DW_TAG_base_type)
  .value(llvmo::_sym_DW_TAG_access_declaration,llvm::dwarf::DW_TAG_access_declaration)
  .value(llvmo::_sym_DW_TAG_with_stmt,llvm::dwarf::DW_TAG_with_stmt)
  .value(llvmo::_sym_DW_TAG_subrange_type,llvm::dwarf::DW_TAG_subrange_type)
  .value(llvmo::_sym_DW_TAG_set_type,llvm::dwarf::DW_TAG_set_type)
  .value(llvmo::_sym_DW_TAG_ptr_to_member_type,llvm::dwarf::DW_TAG_ptr_to_member_type)
  .value(llvmo::_sym_DW_TAG_module,llvm::dwarf::DW_TAG_module)
  .value(llvmo::_sym_DW_TAG_inlined_subroutine,llvm::dwarf::DW_TAG_inlined_subroutine)
  .value(llvmo::_sym_DW_TAG_inheritance,llvm::dwarf::DW_TAG_inheritance)
  .value(llvmo::_sym_DW_TAG_common_inclusion,llvm::dwarf::DW_TAG_common_inclusion)
  .value(llvmo::_sym_DW_TAG_common_block,llvm::dwarf::DW_TAG_common_block)
  .value(llvmo::_sym_DW_TAG_variant,llvm::dwarf::DW_TAG_variant)
  .value(llvmo::_sym_DW_TAG_unspecified_parameters,llvm::dwarf::DW_TAG_unspecified_parameters)
  .value(llvmo::_sym_DW_TAG_union_type,llvm::dwarf::DW_TAG_union_type)
  .value(llvmo::_sym_DW_TAG_typedef,llvm::dwarf::DW_TAG_typedef)
  .value(llvmo::_sym_DW_TAG_subroutine_type,llvm::dwarf::DW_TAG_subroutine_type)
  .value(llvmo::_sym_DW_TAG_structure_type,llvm::dwarf::DW_TAG_structure_type)
  .value(llvmo::_sym_DW_TAG_string_type,llvm::dwarf::DW_TAG_string_type)
  .value(llvmo::_sym_DW_TAG_compile_unit,llvm::dwarf::DW_TAG_compile_unit)
  .value(llvmo::_sym_DW_TAG_reference_type,llvm::dwarf::DW_TAG_reference_type)
  .value(llvmo::_sym_DW_TAG_pointer_type,llvm::dwarf::DW_TAG_pointer_type)
  .value(llvmo::_sym_DW_TAG_member,llvm::dwarf::DW_TAG_member)
  .value(llvmo::_sym_DW_TAG_lexical_block,llvm::dwarf::DW_TAG_lexical_block)
  .value(llvmo::_sym_DW_TAG_label,llvm::dwarf::DW_TAG_label)
  .value(llvmo::_sym_DW_TAG_imported_declaration,llvm::dwarf::DW_TAG_imported_declaration)
  .value(llvmo::_sym_DW_TAG_formal_parameter,llvm::dwarf::DW_TAG_formal_parameter)
  .value(llvmo::_sym_DW_TAG_enumeration_type,llvm::dwarf::DW_TAG_enumeration_type)
  .value(llvmo::_sym_DW_TAG_entry_point,llvm::dwarf::DW_TAG_entry_point)
  .value(llvmo::_sym_DW_TAG_class_type,llvm::dwarf::DW_TAG_class_type)
  .value(llvmo::_sym_DW_TAG_array_type,llvm::dwarf::DW_TAG_array_type)
;
core::enum_<llvm::DICompileUnit::DebugNameTableKind>(llvmo::_sym_DNTKEnum,"DNTKEnum")
  .value(kw::_sym_DNTK_None,llvm::DICompileUnit::DebugNameTableKind::None)
  .value(kw::_sym_DNTK_GNU,llvm::DICompileUnit::DebugNameTableKind::GNU)
  .value(kw::_sym_DNTK_Default,llvm::DICompileUnit::DebugNameTableKind::Default)
;
core::enum_<llvm::DIFile::ChecksumKind>(llvmo::_sym_CSKEnum,"CSKEnum")
  .value(kw::_sym_CSK_SHA1,llvm::DIFile::CSK_SHA1)
  .value(kw::_sym_CSK_MD5,llvm::DIFile::CSK_MD5)
;
core::enum_<llvm::DISubprogram::DISPFlags>(llvmo::_sym_DISPFlagEnum,"DISPFlagEnum")
  .value(llvmo::_sym_DISPFlagVirtuality,llvm::DISubprogram::SPFlagVirtuality)
  .value(llvmo::_sym_DISPFlagNonvirtual,llvm::DISubprogram::SPFlagNonvirtual)
  .value(llvmo::_sym_DISPFlagMainSubprogram,llvm::DISubprogram::SPFlagMainSubprogram)
  .value(llvmo::_sym_DISPFlagRecursive,llvm::DISubprogram::SPFlagRecursive)
  .value(llvmo::_sym_DISPFlagElemental,llvm::DISubprogram::SPFlagElemental)
  .value(llvmo::_sym_DISPFlagPure,llvm::DISubprogram::SPFlagPure)
  .value(llvmo::_sym_DISPFlagOptimized,llvm::DISubprogram::SPFlagOptimized)
  .value(llvmo::_sym_DISPFlagDefinition,llvm::DISubprogram::SPFlagDefinition)
  .value(llvmo::_sym_DISPFlagLocalToUnit,llvm::DISubprogram::SPFlagLocalToUnit)
  .value(llvmo::_sym_DISPFlagPureVirtual,llvm::DISubprogram::SPFlagPureVirtual)
  .value(llvmo::_sym_DISPFlagVirtual,llvm::DISubprogram::SPFlagVirtual)
  .value(llvmo::_sym_DISPFlagZero,llvm::DISubprogram::SPFlagZero)
;
core::enum_<llvm::DINode::DIFlags>(llvmo::_sym_DIFlagsEnum,"DIFlagsEnum")
  .value(llvmo::_sym_DIFlagsNoReturn,llvm::DINode::FlagNoReturn)
  .value(llvmo::_sym_DIFlagsBitField,llvm::DINode::FlagBitField)
  .value(llvmo::_sym_DIFlagsIntroducedVirtual,llvm::DINode::FlagIntroducedVirtual)
  .value(llvmo::_sym_DIFlagsVirtualInheritance,llvm::DINode::FlagVirtualInheritance)
  .value(llvmo::_sym_DIFlagsMultipleInheritance,llvm::DINode::FlagMultipleInheritance)
  .value(llvmo::_sym_DIFlagsSingleInheritance,llvm::DINode::FlagSingleInheritance)
  .value(llvmo::_sym_DIFlagsRValueReference,llvm::DINode::FlagRValueReference)
  .value(llvmo::_sym_DIFlagsLValueReference,llvm::DINode::FlagLValueReference)
  .value(llvmo::_sym_DIFlagsStaticMember,llvm::DINode::FlagStaticMember)
  .value(llvmo::_sym_DIFlagsVector,llvm::DINode::FlagVector)
  .value(llvmo::_sym_DIFlagsObjectPointer,llvm::DINode::FlagObjectPointer)
  .value(llvmo::_sym_DIFlagsObjcClassComplete,llvm::DINode::FlagObjcClassComplete)
  .value(llvmo::_sym_DIFlagsPrototyped,llvm::DINode::FlagPrototyped)
  .value(llvmo::_sym_DIFlagsExplicit,llvm::DINode::FlagExplicit)
  .value(llvmo::_sym_DIFlagsArtificial,llvm::DINode::FlagArtificial)
  .value(llvmo::_sym_DIFlagsVirtual,llvm::DINode::FlagVirtual)
  .value(llvmo::_sym_DIFlagsAppleBlock,llvm::DINode::FlagAppleBlock)
  .value(llvmo::_sym_DIFlagsFwdDecl,llvm::DINode::FlagFwdDecl)
  .value(llvmo::_sym_DIFlagsPublic,llvm::DINode::FlagPublic)
  .value(llvmo::_sym_DIFlagsProtected,llvm::DINode::FlagProtected)
  .value(llvmo::_sym_DIFlagsPrivate,llvm::DINode::FlagPrivate)
  .value(llvmo::_sym_DIFlagsZero,llvm::DINode::FlagZero)
;
#endif //ifdef ALL_ENUMS
