Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file llvm.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425(*===-- llvm/llvm.ml - LLVM OCaml Interface -------------------------------===*
*
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
* See https://llvm.org/LICENSE.txt for license information.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*
*===----------------------------------------------------------------------===*)typellcontexttypellmoduletypellmetadatatypelltypetypellvaluetypellusetypellbasicblocktypellbuildertypellattrkindtypellattributetypellmemorybuffertypellmdkindexceptionFeatureDisabledofstringlet()=Callback.register_exception"Llvm.FeatureDisabled"(FeatureDisabled"")moduleTypeKind=structtypet=|Void|Half|Float|Double|X86fp80|Fp128|Ppc_fp128|Label|Integer|Function|Struct|Array|Pointer|Vector|Metadata|X86_mmx|Token|ScalableVector|BFloat|X86_amxendmoduleLinkage=structtypet=|External|Available_externally|Link_once|Link_once_odr|Link_once_odr_auto_hide|Weak|Weak_odr|Appending|Internal|Private|Dllimport|Dllexport|External_weak|Ghost|Common|Linker_private|Linker_private_weakendmoduleVisibility=structtypet=|Default|Hidden|ProtectedendmoduleDLLStorageClass=structtypet=|Default|DLLImport|DLLExportendmoduleCallConv=structletc=0letfast=8letcold=9letx86_stdcall=64letx86_fastcall=65endmoduleAttrRepr=structtypet=|Enumofllattrkind*int64|Stringofstring*stringendmoduleAttrIndex=structtypet=|Function|Return|Paramofintletto_intindex=matchindexwith|Function->-1|Return->0|Param(n)->1+nendmoduleAttribute=structtypet=|Zext|Sext|Noreturn|Inreg|Structret|Nounwind|Noalias|Byval|Nest|Readnone|Readonly|Noinline|Alwaysinline|Optsize|Ssp|Sspreq|Alignmentofint|Nocapture|Noredzone|Noimplicitfloat|Naked|Inlinehint|Stackalignmentofint|ReturnsTwice|UWTable|NonLazyBindendmoduleIcmp=structtypet=|Eq|Ne|Ugt|Uge|Ult|Ule|Sgt|Sge|Slt|SleendmoduleFcmp=structtypet=|False|Oeq|Ogt|Oge|Olt|Ole|One|Ord|Uno|Ueq|Ugt|Uge|Ult|Ule|Une|TrueendmoduleOpcode=structtypet=|Invalid(* not an instruction *)(* Terminator Instructions *)|Ret|Br|Switch|IndirectBr|Invoke|Invalid2|Unreachable(* Standard Binary Operators *)|Add|FAdd|Sub|FSub|Mul|FMul|UDiv|SDiv|FDiv|URem|SRem|FRem(* Logical Operators *)|Shl|LShr|AShr|And|Or|Xor(* Memory Operators *)|Alloca|Load|Store|GetElementPtr(* Cast Operators *)|Trunc|ZExt|SExt|FPToUI|FPToSI|UIToFP|SIToFP|FPTrunc|FPExt|PtrToInt|IntToPtr|BitCast(* Other Operators *)|ICmp|FCmp|PHI|Call|Select|UserOp1|UserOp2|VAArg|ExtractElement|InsertElement|ShuffleVector|ExtractValue|InsertValue|Fence|AtomicCmpXchg|AtomicRMW|Resume|LandingPad|AddrSpaceCast|CleanupRet|CatchRet|CatchPad|CleanupPad|CatchSwitch|FNeg|CallBr|FreezeendmoduleLandingPadClauseTy=structtypet=|Catch|FilterendmoduleThreadLocalMode=structtypet=|None|GeneralDynamic|LocalDynamic|InitialExec|LocalExecendmoduleAtomicOrdering=structtypet=|NotAtomic|Unordered|Monotonic|Invalid|Acquire|Release|AcqiureRelease|SequentiallyConsistentendmoduleAtomicRMWBinOp=structtypet=|Xchg|Add|Sub|And|Nand|Or|Xor|Max|Min|UMax|UMin|FAdd|FSubendmoduleValueKind=structtypet=|NullValue|Argument|BasicBlock|InlineAsm|MDNode|MDString|BlockAddress|ConstantAggregateZero|ConstantArray|ConstantDataArray|ConstantDataVector|ConstantExpr|ConstantFP|ConstantInt|ConstantPointerNull|ConstantStruct|ConstantVector|Function|GlobalAlias|GlobalIFunc|GlobalVariable|UndefValue|PoisonValue|InstructionofOpcode.tendmoduleDiagnosticSeverity=structtypet=|Error|Warning|Remark|NoteendmoduleModuleFlagBehavior=structtypet=|Error|Warning|Require|Override|Append|AppendUniqueendexceptionIoErrorofstringlet()=Callback.register_exception"Llvm.IoError"(IoError"")externalinstall_fatal_error_handler:(string->unit)->unit="llvm_install_fatal_error_handler"externalreset_fatal_error_handler:unit->unit="llvm_reset_fatal_error_handler"externalenable_pretty_stacktrace:unit->unit="llvm_enable_pretty_stacktrace"externalparse_command_line_options:?overview:string->stringarray->unit="llvm_parse_command_line_options"type('a,'b)llpos=|At_endof'a|Beforeof'btype('a,'b)llrev_pos=|At_startof'a|Afterof'b(*===-- Context error handling --------------------------------------------===*)moduleDiagnostic=structtypetexternaldescription:t->string="llvm_get_diagnostic_description"externalseverity:t->DiagnosticSeverity.t="llvm_get_diagnostic_severity"endexternalset_diagnostic_handler:llcontext->(Diagnostic.t->unit)option->unit="llvm_set_diagnostic_handler"(*===-- Contexts ----------------------------------------------------------===*)externalcreate_context:unit->llcontext="llvm_create_context"externaldispose_context:llcontext->unit="llvm_dispose_context"externalglobal_context:unit->llcontext="llvm_global_context"externalmdkind_id:llcontext->string->llmdkind="llvm_mdkind_id"(*===-- Attributes --------------------------------------------------------===*)exceptionUnknownAttributeofstringlet()=Callback.register_exception"Llvm.UnknownAttribute"(UnknownAttribute"")externalenum_attr_kind:string->llattrkind="llvm_enum_attr_kind"externalllvm_create_enum_attr:llcontext->llattrkind->int64->llattribute="llvm_create_enum_attr_by_kind"externalis_enum_attr:llattribute->bool="llvm_is_enum_attr"externalget_enum_attr_kind:llattribute->llattrkind="llvm_get_enum_attr_kind"externalget_enum_attr_value:llattribute->int64="llvm_get_enum_attr_value"externalllvm_create_string_attr:llcontext->string->string->llattribute="llvm_create_string_attr"externalis_string_attr:llattribute->bool="llvm_is_string_attr"externalget_string_attr_kind:llattribute->string="llvm_get_string_attr_kind"externalget_string_attr_value:llattribute->string="llvm_get_string_attr_value"letcreate_enum_attrcontextnamevalue=llvm_create_enum_attrcontext(enum_attr_kindname)valueletcreate_string_attrcontextkindvalue=llvm_create_string_attrcontextkindvalueletattr_of_reprcontextrepr=matchreprwith|AttrRepr.Enum(kind,value)->llvm_create_enum_attrcontextkindvalue|AttrRepr.String(key,value)->llvm_create_string_attrcontextkeyvalueletrepr_of_attrattr=ifis_enum_attrattrthenAttrRepr.Enum(get_enum_attr_kindattr,get_enum_attr_valueattr)elseifis_string_attrattrthenAttrRepr.String(get_string_attr_kindattr,get_string_attr_valueattr)elseassertfalse(*===-- Modules -----------------------------------------------------------===*)externalcreate_module:llcontext->string->llmodule="llvm_create_module"externaldispose_module:llmodule->unit="llvm_dispose_module"externaltarget_triple:llmodule->string="llvm_target_triple"externalset_target_triple:string->llmodule->unit="llvm_set_target_triple"externaldata_layout:llmodule->string="llvm_data_layout"externalset_data_layout:string->llmodule->unit="llvm_set_data_layout"externaldump_module:llmodule->unit="llvm_dump_module"externalprint_module:string->llmodule->unit="llvm_print_module"externalstring_of_llmodule:llmodule->string="llvm_string_of_llmodule"externalset_module_inline_asm:llmodule->string->unit="llvm_set_module_inline_asm"externalmodule_context:llmodule->llcontext="llvm_get_module_context"externalget_module_identifier:llmodule->string="llvm_get_module_identifier"externalset_module_identifer:llmodule->string->unit="llvm_set_module_identifier"externalget_module_flag:llmodule->string->llmetadataoption="llvm_get_module_flag"externaladd_module_flag:llmodule->ModuleFlagBehavior.t->string->llmetadata->unit="llvm_add_module_flag"(*===-- Types -------------------------------------------------------------===*)externalclassify_type:lltype->TypeKind.t="llvm_classify_type"externaltype_context:lltype->llcontext="llvm_type_context"externaltype_is_sized:lltype->bool="llvm_type_is_sized"externaldump_type:lltype->unit="llvm_dump_type"externalstring_of_lltype:lltype->string="llvm_string_of_lltype"(*--... Operations on integer types ........................................--*)externali1_type:llcontext->lltype="llvm_i1_type"externali8_type:llcontext->lltype="llvm_i8_type"externali16_type:llcontext->lltype="llvm_i16_type"externali32_type:llcontext->lltype="llvm_i32_type"externali64_type:llcontext->lltype="llvm_i64_type"externalinteger_type:llcontext->int->lltype="llvm_integer_type"externalinteger_bitwidth:lltype->int="llvm_integer_bitwidth"(*--... Operations on real types ...........................................--*)externalfloat_type:llcontext->lltype="llvm_float_type"externaldouble_type:llcontext->lltype="llvm_double_type"externalx86fp80_type:llcontext->lltype="llvm_x86fp80_type"externalfp128_type:llcontext->lltype="llvm_fp128_type"externalppc_fp128_type:llcontext->lltype="llvm_ppc_fp128_type"(*--... Operations on function types .......................................--*)externalfunction_type:lltype->lltypearray->lltype="llvm_function_type"externalvar_arg_function_type:lltype->lltypearray->lltype="llvm_var_arg_function_type"externalis_var_arg:lltype->bool="llvm_is_var_arg"externalreturn_type:lltype->lltype="llvm_return_type"externalparam_types:lltype->lltypearray="llvm_param_types"(*--... Operations on struct types .........................................--*)externalstruct_type:llcontext->lltypearray->lltype="llvm_struct_type"externalpacked_struct_type:llcontext->lltypearray->lltype="llvm_packed_struct_type"externalstruct_name:lltype->stringoption="llvm_struct_name"externalnamed_struct_type:llcontext->string->lltype="llvm_named_struct_type"externalstruct_set_body:lltype->lltypearray->bool->unit="llvm_struct_set_body"externalstruct_element_types:lltype->lltypearray="llvm_struct_element_types"externalis_packed:lltype->bool="llvm_is_packed"externalis_opaque:lltype->bool="llvm_is_opaque"externalis_literal:lltype->bool="llvm_is_literal"(*--... Operations on pointer, vector, and array types .....................--*)externalsubtypes:lltype->lltypearray="llvm_subtypes"externalarray_type:lltype->int->lltype="llvm_array_type"externalpointer_type:llcontext->lltype="llvm_pointer_type"letpointer_type2=pointer_typeexternalqualified_pointer_type:llcontext->int->lltype="llvm_qualified_pointer_type"letqualified_pointer_type2=qualified_pointer_typeexternalvector_type:lltype->int->lltype="llvm_vector_type"externalelement_type:lltype->lltype="llvm_get_element_type"externalarray_length:lltype->int="llvm_array_length"externaladdress_space:lltype->int="llvm_address_space"externalvector_size:lltype->int="llvm_vector_size"(*--... Operations on other types ..........................................--*)externalvoid_type:llcontext->lltype="llvm_void_type"externallabel_type:llcontext->lltype="llvm_label_type"externalx86_mmx_type:llcontext->lltype="llvm_x86_mmx_type"externaltype_by_name:llmodule->string->lltypeoption="llvm_type_by_name"externalclassify_value:llvalue->ValueKind.t="llvm_classify_value"(*===-- Values ------------------------------------------------------------===*)externaltype_of:llvalue->lltype="llvm_type_of"externalvalue_name:llvalue->string="llvm_value_name"externalset_value_name:string->llvalue->unit="llvm_set_value_name"externaldump_value:llvalue->unit="llvm_dump_value"externalstring_of_llvalue:llvalue->string="llvm_string_of_llvalue"externalreplace_all_uses_with:llvalue->llvalue->unit="llvm_replace_all_uses_with"(*--... Operations on uses .................................................--*)externaluse_begin:llvalue->lluseoption="llvm_use_begin"externaluse_succ:lluse->lluseoption="llvm_use_succ"externaluser:lluse->llvalue="llvm_user"externalused_value:lluse->llvalue="llvm_used_value"letiter_usesfv=letrecaux=function|None->()|Someu->fu;aux(use_succu)inaux(use_beginv)letfold_left_usesfinitv=letrecauxinitu=matchuwith|None->init|Someu->aux(finitu)(use_succu)inauxinit(use_beginv)letfold_right_usesfvinit=letrecauxuinit=matchuwith|None->init|Someu->fu(aux(use_succu)init)inaux(use_beginv)init(*--... Operations on users ................................................--*)externaloperand:llvalue->int->llvalue="llvm_operand"externaloperand_use:llvalue->int->lluse="llvm_operand_use"externalset_operand:llvalue->int->llvalue->unit="llvm_set_operand"externalnum_operands:llvalue->int="llvm_num_operands"externalindices:llvalue->intarray="llvm_indices"(*--... Operations on constants of (mostly) any type .......................--*)externalis_constant:llvalue->bool="llvm_is_constant"externalconst_null:lltype->llvalue="llvm_const_null"externalconst_all_ones:(*int|vec*)lltype->llvalue="llvm_const_all_ones"externalconst_pointer_null:lltype->llvalue="llvm_const_pointer_null"externalundef:lltype->llvalue="llvm_get_undef"externalpoison:lltype->llvalue="llvm_get_poison"externalis_null:llvalue->bool="llvm_is_null"externalis_undef:llvalue->bool="llvm_is_undef"externalis_poison:llvalue->bool="llvm_is_poison"externalconstexpr_opcode:llvalue->Opcode.t="llvm_constexpr_get_opcode"(*--... Operations on instructions .........................................--*)externalhas_metadata:llvalue->bool="llvm_has_metadata"externalmetadata:llvalue->llmdkind->llvalueoption="llvm_metadata"externalset_metadata:llvalue->llmdkind->llvalue->unit="llvm_set_metadata"externalclear_metadata:llvalue->llmdkind->unit="llvm_clear_metadata"(*--... Operations on metadata .......,.....................................--*)externalmdstring:llcontext->string->llvalue="llvm_mdstring"externalmdnode:llcontext->llvaluearray->llvalue="llvm_mdnode"externalmdnull:llcontext->llvalue="llvm_mdnull"externalget_mdstring:llvalue->stringoption="llvm_get_mdstring"externalget_mdnode_operands:llvalue->llvaluearray="llvm_get_mdnode_operands"externalget_named_metadata:llmodule->string->llvaluearray="llvm_get_namedmd"externaladd_named_metadata_operand:llmodule->string->llvalue->unit="llvm_append_namedmd"externalvalue_as_metadata:llvalue->llmetadata="llvm_value_as_metadata"externalmetadata_as_value:llcontext->llmetadata->llvalue="llvm_metadata_as_value"(*--... Operations on scalar constants .....................................--*)externalconst_int:lltype->int->llvalue="llvm_const_int"externalconst_of_int64:lltype->Int64.t->bool->llvalue="llvm_const_of_int64"externalint64_of_const:llvalue->Int64.toption="llvm_int64_of_const"externalconst_int_of_string:lltype->string->int->llvalue="llvm_const_int_of_string"externalconst_float:lltype->float->llvalue="llvm_const_float"externalfloat_of_const:llvalue->floatoption="llvm_float_of_const"externalconst_float_of_string:lltype->string->llvalue="llvm_const_float_of_string"(*--... Operations on composite constants ..................................--*)externalconst_string:llcontext->string->llvalue="llvm_const_string"externalconst_stringz:llcontext->string->llvalue="llvm_const_stringz"externalconst_array:lltype->llvaluearray->llvalue="llvm_const_array"externalconst_struct:llcontext->llvaluearray->llvalue="llvm_const_struct"externalconst_named_struct:lltype->llvaluearray->llvalue="llvm_const_named_struct"externalconst_packed_struct:llcontext->llvaluearray->llvalue="llvm_const_packed_struct"externalconst_vector:llvaluearray->llvalue="llvm_const_vector"externalstring_of_const:llvalue->stringoption="llvm_string_of_const"externalaggregate_element:llvalue->int->llvalueoption="llvm_aggregate_element"(*--... Constant expressions ...............................................--*)externalalign_of:lltype->llvalue="llvm_align_of"externalsize_of:lltype->llvalue="llvm_size_of"externalconst_neg:llvalue->llvalue="llvm_const_neg"externalconst_nsw_neg:llvalue->llvalue="llvm_const_nsw_neg"externalconst_nuw_neg:llvalue->llvalue="llvm_const_nuw_neg"externalconst_not:llvalue->llvalue="llvm_const_not"externalconst_add:llvalue->llvalue->llvalue="llvm_const_add"externalconst_nsw_add:llvalue->llvalue->llvalue="llvm_const_nsw_add"externalconst_nuw_add:llvalue->llvalue->llvalue="llvm_const_nuw_add"externalconst_sub:llvalue->llvalue->llvalue="llvm_const_sub"externalconst_nsw_sub:llvalue->llvalue->llvalue="llvm_const_nsw_sub"externalconst_nuw_sub:llvalue->llvalue->llvalue="llvm_const_nuw_sub"externalconst_mul:llvalue->llvalue->llvalue="llvm_const_mul"externalconst_nsw_mul:llvalue->llvalue->llvalue="llvm_const_nsw_mul"externalconst_nuw_mul:llvalue->llvalue->llvalue="llvm_const_nuw_mul"externalconst_and:llvalue->llvalue->llvalue="llvm_const_and"externalconst_or:llvalue->llvalue->llvalue="llvm_const_or"externalconst_xor:llvalue->llvalue->llvalue="llvm_const_xor"externalconst_icmp:Icmp.t->llvalue->llvalue->llvalue="llvm_const_icmp"externalconst_fcmp:Fcmp.t->llvalue->llvalue->llvalue="llvm_const_fcmp"externalconst_shl:llvalue->llvalue->llvalue="llvm_const_shl"externalconst_lshr:llvalue->llvalue->llvalue="llvm_const_lshr"externalconst_ashr:llvalue->llvalue->llvalue="llvm_const_ashr"externalconst_gep:lltype->llvalue->llvaluearray->llvalue="llvm_const_gep"letconst_gep2=const_gepexternalconst_in_bounds_gep:lltype->llvalue->llvaluearray->llvalue="llvm_const_in_bounds_gep"letconst_in_bounds_gep2=const_in_bounds_gepexternalconst_trunc:llvalue->lltype->llvalue="llvm_const_trunc"externalconst_sext:llvalue->lltype->llvalue="llvm_const_sext"externalconst_zext:llvalue->lltype->llvalue="llvm_const_zext"externalconst_fptrunc:llvalue->lltype->llvalue="llvm_const_fptrunc"externalconst_fpext:llvalue->lltype->llvalue="llvm_const_fpext"externalconst_uitofp:llvalue->lltype->llvalue="llvm_const_uitofp"externalconst_sitofp:llvalue->lltype->llvalue="llvm_const_sitofp"externalconst_fptoui:llvalue->lltype->llvalue="llvm_const_fptoui"externalconst_fptosi:llvalue->lltype->llvalue="llvm_const_fptosi"externalconst_ptrtoint:llvalue->lltype->llvalue="llvm_const_ptrtoint"externalconst_inttoptr:llvalue->lltype->llvalue="llvm_const_inttoptr"externalconst_bitcast:llvalue->lltype->llvalue="llvm_const_bitcast"externalconst_zext_or_bitcast:llvalue->lltype->llvalue="llvm_const_zext_or_bitcast"externalconst_sext_or_bitcast:llvalue->lltype->llvalue="llvm_const_sext_or_bitcast"externalconst_trunc_or_bitcast:llvalue->lltype->llvalue="llvm_const_trunc_or_bitcast"externalconst_pointercast:llvalue->lltype->llvalue="llvm_const_pointercast"externalconst_intcast:llvalue->lltype->is_signed:bool->llvalue="llvm_const_intcast"externalconst_fpcast:llvalue->lltype->llvalue="llvm_const_fpcast"externalconst_select:llvalue->llvalue->llvalue->llvalue="llvm_const_select"externalconst_extractelement:llvalue->llvalue->llvalue="llvm_const_extractelement"externalconst_insertelement:llvalue->llvalue->llvalue->llvalue="llvm_const_insertelement"externalconst_shufflevector:llvalue->llvalue->llvalue->llvalue="llvm_const_shufflevector"externalconst_inline_asm:lltype->string->string->bool->bool->llvalue="llvm_const_inline_asm"externalblock_address:llvalue->llbasicblock->llvalue="llvm_blockaddress"(*--... Operations on global variables, functions, and aliases (globals) ...--*)externalglobal_parent:llvalue->llmodule="llvm_global_parent"externalis_declaration:llvalue->bool="llvm_is_declaration"externallinkage:llvalue->Linkage.t="llvm_linkage"externalset_linkage:Linkage.t->llvalue->unit="llvm_set_linkage"externalunnamed_addr:llvalue->bool="llvm_unnamed_addr"externalset_unnamed_addr:bool->llvalue->unit="llvm_set_unnamed_addr"externalsection:llvalue->string="llvm_section"externalset_section:string->llvalue->unit="llvm_set_section"externalvisibility:llvalue->Visibility.t="llvm_visibility"externalset_visibility:Visibility.t->llvalue->unit="llvm_set_visibility"externaldll_storage_class:llvalue->DLLStorageClass.t="llvm_dll_storage_class"externalset_dll_storage_class:DLLStorageClass.t->llvalue->unit="llvm_set_dll_storage_class"externalalignment:llvalue->int="llvm_alignment"externalset_alignment:int->llvalue->unit="llvm_set_alignment"externalglobal_copy_all_metadata:llvalue->(llmdkind*llmetadata)array="llvm_global_copy_all_metadata"externalis_global_constant:llvalue->bool="llvm_is_global_constant"externalset_global_constant:bool->llvalue->unit="llvm_set_global_constant"(*--... Operations on global variables .....................................--*)externaldeclare_global:lltype->string->llmodule->llvalue="llvm_declare_global"externaldeclare_qualified_global:lltype->string->int->llmodule->llvalue="llvm_declare_qualified_global"externaldefine_global:string->llvalue->llmodule->llvalue="llvm_define_global"externaldefine_qualified_global:string->llvalue->int->llmodule->llvalue="llvm_define_qualified_global"externallookup_global:string->llmodule->llvalueoption="llvm_lookup_global"externaldelete_global:llvalue->unit="llvm_delete_global"externalglobal_initializer:llvalue->llvalueoption="llvm_global_initializer"externalset_initializer:llvalue->llvalue->unit="llvm_set_initializer"externalremove_initializer:llvalue->unit="llvm_remove_initializer"externalis_thread_local:llvalue->bool="llvm_is_thread_local"externalset_thread_local:bool->llvalue->unit="llvm_set_thread_local"externalthread_local_mode:llvalue->ThreadLocalMode.t="llvm_thread_local_mode"externalset_thread_local_mode:ThreadLocalMode.t->llvalue->unit="llvm_set_thread_local_mode"externalis_externally_initialized:llvalue->bool="llvm_is_externally_initialized"externalset_externally_initialized:bool->llvalue->unit="llvm_set_externally_initialized"externalglobal_begin:llmodule->(llmodule,llvalue)llpos="llvm_global_begin"externalglobal_succ:llvalue->(llmodule,llvalue)llpos="llvm_global_succ"externalglobal_end:llmodule->(llmodule,llvalue)llrev_pos="llvm_global_end"externalglobal_pred:llvalue->(llmodule,llvalue)llrev_pos="llvm_global_pred"letreciter_global_rangefie=ifi=ethen()elsematchiwith|At_end_->raise(Invalid_argument"Invalid global variable range.")|Beforebb->fbb;iter_global_rangef(global_succbb)eletiter_globalsfm=iter_global_rangef(global_beginm)(At_endm)letrecfold_left_global_rangefinitie=ifi=etheninitelsematchiwith|At_end_->raise(Invalid_argument"Invalid global variable range.")|Beforebb->fold_left_global_rangef(finitbb)(global_succbb)eletfold_left_globalsfinitm=fold_left_global_rangefinit(global_beginm)(At_endm)letrecrev_iter_global_rangefie=ifi=ethen()elsematchiwith|At_start_->raise(Invalid_argument"Invalid global variable range.")|Afterbb->fbb;rev_iter_global_rangef(global_predbb)eletrev_iter_globalsfm=rev_iter_global_rangef(global_endm)(At_startm)letrecfold_right_global_rangefieinit=ifi=etheninitelsematchiwith|At_start_->raise(Invalid_argument"Invalid global variable range.")|Afterbb->fold_right_global_rangef(global_predbb)e(fbbinit)letfold_right_globalsfminit=fold_right_global_rangef(global_endm)(At_startm)init(*--... Operations on aliases ..............................................--*)externaladd_alias:llmodule->lltype->int->llvalue->string->llvalue="llvm_add_alias"letadd_alias2=add_alias(*--... Operations on functions ............................................--*)externaldeclare_function:string->lltype->llmodule->llvalue="llvm_declare_function"externaldefine_function:string->lltype->llmodule->llvalue="llvm_define_function"externallookup_function:string->llmodule->llvalueoption="llvm_lookup_function"externaldelete_function:llvalue->unit="llvm_delete_function"externalis_intrinsic:llvalue->bool="llvm_is_intrinsic"externalfunction_call_conv:llvalue->int="llvm_function_call_conv"externalset_function_call_conv:int->llvalue->unit="llvm_set_function_call_conv"externalgc:llvalue->stringoption="llvm_gc"externalset_gc:stringoption->llvalue->unit="llvm_set_gc"externalfunction_begin:llmodule->(llmodule,llvalue)llpos="llvm_function_begin"externalfunction_succ:llvalue->(llmodule,llvalue)llpos="llvm_function_succ"externalfunction_end:llmodule->(llmodule,llvalue)llrev_pos="llvm_function_end"externalfunction_pred:llvalue->(llmodule,llvalue)llrev_pos="llvm_function_pred"letreciter_function_rangefie=ifi=ethen()elsematchiwith|At_end_->raise(Invalid_argument"Invalid function range.")|Beforefn->ffn;iter_function_rangef(function_succfn)eletiter_functionsfm=iter_function_rangef(function_beginm)(At_endm)letrecfold_left_function_rangefinitie=ifi=etheninitelsematchiwith|At_end_->raise(Invalid_argument"Invalid function range.")|Beforefn->fold_left_function_rangef(finitfn)(function_succfn)eletfold_left_functionsfinitm=fold_left_function_rangefinit(function_beginm)(At_endm)letrecrev_iter_function_rangefie=ifi=ethen()elsematchiwith|At_start_->raise(Invalid_argument"Invalid function range.")|Afterfn->ffn;rev_iter_function_rangef(function_predfn)eletrev_iter_functionsfm=rev_iter_function_rangef(function_endm)(At_startm)letrecfold_right_function_rangefieinit=ifi=etheninitelsematchiwith|At_start_->raise(Invalid_argument"Invalid function range.")|Afterfn->fold_right_function_rangef(function_predfn)e(ffninit)letfold_right_functionsfminit=fold_right_function_rangef(function_endm)(At_startm)initexternalllvm_add_function_attr:llvalue->llattribute->int->unit="llvm_add_function_attr"externalllvm_function_attrs:llvalue->int->llattributearray="llvm_function_attrs"externalllvm_remove_enum_function_attr:llvalue->llattrkind->int->unit="llvm_remove_enum_function_attr"externalllvm_remove_string_function_attr:llvalue->string->int->unit="llvm_remove_string_function_attr"letadd_function_attrfai=llvm_add_function_attrfa(AttrIndex.to_inti)letfunction_attrsfi=llvm_function_attrsf(AttrIndex.to_inti)letremove_enum_function_attrfki=llvm_remove_enum_function_attrfk(AttrIndex.to_inti)letremove_string_function_attrfki=llvm_remove_string_function_attrfk(AttrIndex.to_inti)(*--... Operations on params ...............................................--*)externalparams:llvalue->llvaluearray="llvm_params"externalparam:llvalue->int->llvalue="llvm_param"externalparam_parent:llvalue->llvalue="llvm_param_parent"externalparam_begin:llvalue->(llvalue,llvalue)llpos="llvm_param_begin"externalparam_succ:llvalue->(llvalue,llvalue)llpos="llvm_param_succ"externalparam_end:llvalue->(llvalue,llvalue)llrev_pos="llvm_param_end"externalparam_pred:llvalue->(llvalue,llvalue)llrev_pos="llvm_param_pred"letreciter_param_rangefie=ifi=ethen()elsematchiwith|At_end_->raise(Invalid_argument"Invalid parameter range.")|Beforep->fp;iter_param_rangef(param_succp)eletiter_paramsffn=iter_param_rangef(param_beginfn)(At_endfn)letrecfold_left_param_rangefinitie=ifi=etheninitelsematchiwith|At_end_->raise(Invalid_argument"Invalid parameter range.")|Beforep->fold_left_param_rangef(finitp)(param_succp)eletfold_left_paramsfinitfn=fold_left_param_rangefinit(param_beginfn)(At_endfn)letrecrev_iter_param_rangefie=ifi=ethen()elsematchiwith|At_start_->raise(Invalid_argument"Invalid parameter range.")|Afterp->fp;rev_iter_param_rangef(param_predp)eletrev_iter_paramsffn=rev_iter_param_rangef(param_endfn)(At_startfn)letrecfold_right_param_rangefinitie=ifi=etheninitelsematchiwith|At_start_->raise(Invalid_argument"Invalid parameter range.")|Afterp->fold_right_param_rangef(fpinit)(param_predp)eletfold_right_paramsffninit=fold_right_param_rangefinit(param_endfn)(At_startfn)(*--... Operations on basic blocks .........................................--*)externalvalue_of_block:llbasicblock->llvalue="llvm_value_of_block"externalvalue_is_block:llvalue->bool="llvm_value_is_block"externalblock_of_value:llvalue->llbasicblock="llvm_block_of_value"externalblock_parent:llbasicblock->llvalue="llvm_block_parent"externalbasic_blocks:llvalue->llbasicblockarray="llvm_basic_blocks"externalentry_block:llvalue->llbasicblock="llvm_entry_block"externaldelete_block:llbasicblock->unit="llvm_delete_block"externalremove_block:llbasicblock->unit="llvm_remove_block"externalmove_block_before:llbasicblock->llbasicblock->unit="llvm_move_block_before"externalmove_block_after:llbasicblock->llbasicblock->unit="llvm_move_block_after"externalappend_block:llcontext->string->llvalue->llbasicblock="llvm_append_block"externalinsert_block:llcontext->string->llbasicblock->llbasicblock="llvm_insert_block"externalblock_begin:llvalue->(llvalue,llbasicblock)llpos="llvm_block_begin"externalblock_succ:llbasicblock->(llvalue,llbasicblock)llpos="llvm_block_succ"externalblock_end:llvalue->(llvalue,llbasicblock)llrev_pos="llvm_block_end"externalblock_pred:llbasicblock->(llvalue,llbasicblock)llrev_pos="llvm_block_pred"externalblock_terminator:llbasicblock->llvalueoption="llvm_block_terminator"letreciter_block_rangefie=ifi=ethen()elsematchiwith|At_end_->raise(Invalid_argument"Invalid block range.")|Beforebb->fbb;iter_block_rangef(block_succbb)eletiter_blocksffn=iter_block_rangef(block_beginfn)(At_endfn)letrecfold_left_block_rangefinitie=ifi=etheninitelsematchiwith|At_end_->raise(Invalid_argument"Invalid block range.")|Beforebb->fold_left_block_rangef(finitbb)(block_succbb)eletfold_left_blocksfinitfn=fold_left_block_rangefinit(block_beginfn)(At_endfn)letrecrev_iter_block_rangefie=ifi=ethen()elsematchiwith|At_start_->raise(Invalid_argument"Invalid block range.")|Afterbb->fbb;rev_iter_block_rangef(block_predbb)eletrev_iter_blocksffn=rev_iter_block_rangef(block_endfn)(At_startfn)letrecfold_right_block_rangefinitie=ifi=etheninitelsematchiwith|At_start_->raise(Invalid_argument"Invalid block range.")|Afterbb->fold_right_block_rangef(fbbinit)(block_predbb)eletfold_right_blocksffninit=fold_right_block_rangefinit(block_endfn)(At_startfn)(*--... Operations on instructions .........................................--*)externalinstr_parent:llvalue->llbasicblock="llvm_instr_parent"externalinstr_begin:llbasicblock->(llbasicblock,llvalue)llpos="llvm_instr_begin"externalinstr_succ:llvalue->(llbasicblock,llvalue)llpos="llvm_instr_succ"externalinstr_end:llbasicblock->(llbasicblock,llvalue)llrev_pos="llvm_instr_end"externalinstr_pred:llvalue->(llbasicblock,llvalue)llrev_pos="llvm_instr_pred"externalinstr_opcode:llvalue->Opcode.t="llvm_instr_get_opcode"externalicmp_predicate:llvalue->Icmp.toption="llvm_instr_icmp_predicate"externalfcmp_predicate:llvalue->Fcmp.toption="llvm_instr_fcmp_predicate"externalinstr_clone:llvalue->llvalue="llvm_instr_clone"letreciter_instrs_rangefie=ifi=ethen()elsematchiwith|At_end_->raise(Invalid_argument"Invalid instruction range.")|Beforei->fi;iter_instrs_rangef(instr_succi)eletiter_instrsfbb=iter_instrs_rangef(instr_beginbb)(At_endbb)letrecfold_left_instrs_rangefinitie=ifi=etheninitelsematchiwith|At_end_->raise(Invalid_argument"Invalid instruction range.")|Beforei->fold_left_instrs_rangef(finiti)(instr_succi)eletfold_left_instrsfinitbb=fold_left_instrs_rangefinit(instr_beginbb)(At_endbb)letrecrev_iter_instrs_rangefie=ifi=ethen()elsematchiwith|At_start_->raise(Invalid_argument"Invalid instruction range.")|Afteri->fi;rev_iter_instrs_rangef(instr_predi)eletrev_iter_instrsfbb=rev_iter_instrs_rangef(instr_endbb)(At_startbb)letrecfold_right_instr_rangefieinit=ifi=etheninitelsematchiwith|At_start_->raise(Invalid_argument"Invalid instruction range.")|Afteri->fold_right_instr_rangef(instr_predi)e(fiinit)letfold_right_instrsfbbinit=fold_right_instr_rangef(instr_endbb)(At_startbb)init(*--... Operations on call sites ...........................................--*)externalinstruction_call_conv:llvalue->int="llvm_instruction_call_conv"externalset_instruction_call_conv:int->llvalue->unit="llvm_set_instruction_call_conv"externalllvm_add_call_site_attr:llvalue->llattribute->int->unit="llvm_add_call_site_attr"externalllvm_call_site_attrs:llvalue->int->llattributearray="llvm_call_site_attrs"externalllvm_remove_enum_call_site_attr:llvalue->llattrkind->int->unit="llvm_remove_enum_call_site_attr"externalllvm_remove_string_call_site_attr:llvalue->string->int->unit="llvm_remove_string_call_site_attr"letadd_call_site_attrfai=llvm_add_call_site_attrfa(AttrIndex.to_inti)letcall_site_attrsfi=llvm_call_site_attrsf(AttrIndex.to_inti)letremove_enum_call_site_attrfki=llvm_remove_enum_call_site_attrfk(AttrIndex.to_inti)letremove_string_call_site_attrfki=llvm_remove_string_call_site_attrfk(AttrIndex.to_inti)(*--... Operations on call and invoke instructions (only) ..................--*)externalnum_arg_operands:llvalue->int="llvm_num_arg_operands"externalis_tail_call:llvalue->bool="llvm_is_tail_call"externalset_tail_call:bool->llvalue->unit="llvm_set_tail_call"externalget_normal_dest:llvalue->llbasicblock="llvm_get_normal_dest"externalget_unwind_dest:llvalue->llbasicblock="llvm_get_unwind_dest"(*--... Operations on load/store instructions (only) .......................--*)externalis_volatile:llvalue->bool="llvm_is_volatile"externalset_volatile:bool->llvalue->unit="llvm_set_volatile"(*--... Operations on terminators ..........................................--*)letis_terminatorllv=letopenValueKindinletopenOpcodeinmatchclassify_valuellvwith|Instruction(Br|IndirectBr|Invoke|Resume|Ret|Switch|Unreachable)->true|_->falseexternalsuccessor:llvalue->int->llbasicblock="llvm_successor"externalset_successor:llvalue->int->llbasicblock->unit="llvm_set_successor"externalnum_successors:llvalue->int="llvm_num_successors"letsuccessorsllv=ifnot(is_terminatorllv)thenraise(Invalid_argument"Llvm.successors can only be used on terminators")elseArray.init(num_successorsllv)(successorllv)letiter_successorsfllv=ifnot(is_terminatorllv)thenraise(Invalid_argument"Llvm.iter_successors can only be used on terminators")elsefori=0tonum_successorsllv-1dof(successorllvi)doneletfold_successorsfllvz=ifnot(is_terminatorllv)thenraise(Invalid_argument"Llvm.fold_successors can only be used on terminators")elseletn=num_successorsllvinletrecauxiacc=ifi>=nthenaccelsebeginletllb=successorllviinaux(i+1)(fllbacc)endinaux0z(*--... Operations on branches .............................................--*)externalcondition:llvalue->llvalue="llvm_condition"externalset_condition:llvalue->llvalue->unit="llvm_set_condition"externalis_conditional:llvalue->bool="llvm_is_conditional"letget_branchllv=ifclassify_valuellv<>ValueKind.InstructionOpcode.BrthenNoneelseifis_conditionalllvthenSome(`Conditional(conditionllv,successorllv0,successorllv1))elseSome(`Unconditional(successorllv0))(*--... Operations on phi nodes ............................................--*)externaladd_incoming:(llvalue*llbasicblock)->llvalue->unit="llvm_add_incoming"externalincoming:llvalue->(llvalue*llbasicblock)list="llvm_incoming"externaldelete_instruction:llvalue->unit="llvm_delete_instruction"(*===-- Instruction builders ----------------------------------------------===*)externalbuilder:llcontext->llbuilder="llvm_builder"externalposition_builder:(llbasicblock,llvalue)llpos->llbuilder->unit="llvm_position_builder"externalinsertion_block:llbuilder->llbasicblock="llvm_insertion_block"externalinsert_into_builder:llvalue->string->llbuilder->unit="llvm_insert_into_builder"letbuilder_atcontextip=letb=buildercontextinposition_builderipb;bletbuilder_beforecontexti=builder_atcontext(Beforei)letbuilder_at_endcontextbb=builder_atcontext(At_endbb)letposition_beforei=position_builder(Beforei)letposition_at_endbb=position_builder(At_endbb)(*--... Metadata ...........................................................--*)externalset_current_debug_location:llbuilder->llvalue->unit="llvm_set_current_debug_location"externalclear_current_debug_location:llbuilder->unit="llvm_clear_current_debug_location"externalcurrent_debug_location:llbuilder->llvalueoption="llvm_current_debug_location"externalset_inst_debug_location:llbuilder->llvalue->unit="llvm_set_inst_debug_location"(*--... Terminators ........................................................--*)externalbuild_ret_void:llbuilder->llvalue="llvm_build_ret_void"externalbuild_ret:llvalue->llbuilder->llvalue="llvm_build_ret"externalbuild_aggregate_ret:llvaluearray->llbuilder->llvalue="llvm_build_aggregate_ret"externalbuild_br:llbasicblock->llbuilder->llvalue="llvm_build_br"externalbuild_cond_br:llvalue->llbasicblock->llbasicblock->llbuilder->llvalue="llvm_build_cond_br"externalbuild_switch:llvalue->llbasicblock->int->llbuilder->llvalue="llvm_build_switch"externalbuild_malloc:lltype->string->llbuilder->llvalue="llvm_build_malloc"externalbuild_array_malloc:lltype->llvalue->string->llbuilder->llvalue="llvm_build_array_malloc"externalbuild_free:llvalue->llbuilder->llvalue="llvm_build_free"externaladd_case:llvalue->llvalue->llbasicblock->unit="llvm_add_case"externalswitch_default_dest:llvalue->llbasicblock="llvm_switch_default_dest"externalbuild_indirect_br:llvalue->int->llbuilder->llvalue="llvm_build_indirect_br"externaladd_destination:llvalue->llbasicblock->unit="llvm_add_destination"externalbuild_invoke:lltype->llvalue->llvaluearray->llbasicblock->llbasicblock->string->llbuilder->llvalue="llvm_build_invoke_bc""llvm_build_invoke_nat"letbuild_invoke2=build_invokeexternalbuild_landingpad:lltype->llvalue->int->string->llbuilder->llvalue="llvm_build_landingpad"externalis_cleanup:llvalue->bool="llvm_is_cleanup"externalset_cleanup:llvalue->bool->unit="llvm_set_cleanup"externaladd_clause:llvalue->llvalue->unit="llvm_add_clause"externalbuild_resume:llvalue->llbuilder->llvalue="llvm_build_resume"externalbuild_unreachable:llbuilder->llvalue="llvm_build_unreachable"(*--... Arithmetic .........................................................--*)externalbuild_add:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_add"externalbuild_nsw_add:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_nsw_add"externalbuild_nuw_add:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_nuw_add"externalbuild_fadd:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_fadd"externalbuild_sub:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_sub"externalbuild_nsw_sub:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_nsw_sub"externalbuild_nuw_sub:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_nuw_sub"externalbuild_fsub:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_fsub"externalbuild_mul:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_mul"externalbuild_nsw_mul:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_nsw_mul"externalbuild_nuw_mul:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_nuw_mul"externalbuild_fmul:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_fmul"externalbuild_udiv:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_udiv"externalbuild_sdiv:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_sdiv"externalbuild_exact_sdiv:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_exact_sdiv"externalbuild_fdiv:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_fdiv"externalbuild_urem:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_urem"externalbuild_srem:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_srem"externalbuild_frem:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_frem"externalbuild_shl:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_shl"externalbuild_lshr:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_lshr"externalbuild_ashr:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_ashr"externalbuild_and:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_and"externalbuild_or:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_or"externalbuild_xor:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_xor"externalbuild_neg:llvalue->string->llbuilder->llvalue="llvm_build_neg"externalbuild_nsw_neg:llvalue->string->llbuilder->llvalue="llvm_build_nsw_neg"externalbuild_nuw_neg:llvalue->string->llbuilder->llvalue="llvm_build_nuw_neg"externalbuild_fneg:llvalue->string->llbuilder->llvalue="llvm_build_fneg"externalbuild_not:llvalue->string->llbuilder->llvalue="llvm_build_not"(*--... Memory .............................................................--*)externalbuild_alloca:lltype->string->llbuilder->llvalue="llvm_build_alloca"externalbuild_array_alloca:lltype->llvalue->string->llbuilder->llvalue="llvm_build_array_alloca"externalbuild_load:lltype->llvalue->string->llbuilder->llvalue="llvm_build_load"letbuild_load2=build_loadexternalbuild_store:llvalue->llvalue->llbuilder->llvalue="llvm_build_store"externalbuild_atomicrmw:AtomicRMWBinOp.t->llvalue->llvalue->AtomicOrdering.t->bool->string->llbuilder->llvalue="llvm_build_atomicrmw_bytecode""llvm_build_atomicrmw_native"externalbuild_gep:lltype->llvalue->llvaluearray->string->llbuilder->llvalue="llvm_build_gep"letbuild_gep2=build_gepexternalbuild_in_bounds_gep:lltype->llvalue->llvaluearray->string->llbuilder->llvalue="llvm_build_in_bounds_gep"letbuild_in_bounds_gep2=build_in_bounds_gepexternalbuild_struct_gep:lltype->llvalue->int->string->llbuilder->llvalue="llvm_build_struct_gep"letbuild_struct_gep2=build_struct_gepexternalbuild_global_string:string->string->llbuilder->llvalue="llvm_build_global_string"externalbuild_global_stringptr:string->string->llbuilder->llvalue="llvm_build_global_stringptr"(*--... Casts ..............................................................--*)externalbuild_trunc:llvalue->lltype->string->llbuilder->llvalue="llvm_build_trunc"externalbuild_zext:llvalue->lltype->string->llbuilder->llvalue="llvm_build_zext"externalbuild_sext:llvalue->lltype->string->llbuilder->llvalue="llvm_build_sext"externalbuild_fptoui:llvalue->lltype->string->llbuilder->llvalue="llvm_build_fptoui"externalbuild_fptosi:llvalue->lltype->string->llbuilder->llvalue="llvm_build_fptosi"externalbuild_uitofp:llvalue->lltype->string->llbuilder->llvalue="llvm_build_uitofp"externalbuild_sitofp:llvalue->lltype->string->llbuilder->llvalue="llvm_build_sitofp"externalbuild_fptrunc:llvalue->lltype->string->llbuilder->llvalue="llvm_build_fptrunc"externalbuild_fpext:llvalue->lltype->string->llbuilder->llvalue="llvm_build_fpext"externalbuild_ptrtoint:llvalue->lltype->string->llbuilder->llvalue="llvm_build_prttoint"externalbuild_inttoptr:llvalue->lltype->string->llbuilder->llvalue="llvm_build_inttoptr"externalbuild_bitcast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_bitcast"externalbuild_zext_or_bitcast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_zext_or_bitcast"externalbuild_sext_or_bitcast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_sext_or_bitcast"externalbuild_trunc_or_bitcast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_trunc_or_bitcast"externalbuild_pointercast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_pointercast"externalbuild_intcast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_intcast"externalbuild_fpcast:llvalue->lltype->string->llbuilder->llvalue="llvm_build_fpcast"(*--... Comparisons ........................................................--*)externalbuild_icmp:Icmp.t->llvalue->llvalue->string->llbuilder->llvalue="llvm_build_icmp"externalbuild_fcmp:Fcmp.t->llvalue->llvalue->string->llbuilder->llvalue="llvm_build_fcmp"(*--... Miscellaneous instructions .........................................--*)externalbuild_phi:(llvalue*llbasicblock)list->string->llbuilder->llvalue="llvm_build_phi"externalbuild_empty_phi:lltype->string->llbuilder->llvalue="llvm_build_empty_phi"externalbuild_call:lltype->llvalue->llvaluearray->string->llbuilder->llvalue="llvm_build_call"letbuild_call2=build_callexternalbuild_select:llvalue->llvalue->llvalue->string->llbuilder->llvalue="llvm_build_select"externalbuild_va_arg:llvalue->lltype->string->llbuilder->llvalue="llvm_build_va_arg"externalbuild_extractelement:llvalue->llvalue->string->llbuilder->llvalue="llvm_build_extractelement"externalbuild_insertelement:llvalue->llvalue->llvalue->string->llbuilder->llvalue="llvm_build_insertelement"externalbuild_shufflevector:llvalue->llvalue->llvalue->string->llbuilder->llvalue="llvm_build_shufflevector"externalbuild_extractvalue:llvalue->int->string->llbuilder->llvalue="llvm_build_extractvalue"externalbuild_insertvalue:llvalue->llvalue->int->string->llbuilder->llvalue="llvm_build_insertvalue"externalbuild_is_null:llvalue->string->llbuilder->llvalue="llvm_build_is_null"externalbuild_is_not_null:llvalue->string->llbuilder->llvalue="llvm_build_is_not_null"externalbuild_ptrdiff:lltype->llvalue->llvalue->string->llbuilder->llvalue="llvm_build_ptrdiff"letbuild_ptrdiff2=build_ptrdiffexternalbuild_freeze:llvalue->string->llbuilder->llvalue="llvm_build_freeze"(*===-- Memory buffers ----------------------------------------------------===*)moduleMemoryBuffer=structexternalof_file:string->llmemorybuffer="llvm_memorybuffer_of_file"externalof_stdin:unit->llmemorybuffer="llvm_memorybuffer_of_stdin"externalof_string:?name:string->string->llmemorybuffer="llvm_memorybuffer_of_string"externalas_string:llmemorybuffer->string="llvm_memorybuffer_as_string"externaldispose:llmemorybuffer->unit="llvm_memorybuffer_dispose"end(*===-- Pass Manager ------------------------------------------------------===*)modulePassManager=structtype'attypeany=[`Module|`Function]externalcreate:unit->[`Module]t="llvm_passmanager_create"externalcreate_function:llmodule->[`Function]t="llvm_passmanager_create_function"externalrun_module:llmodule->[`Module]t->bool="llvm_passmanager_run_module"externalinitialize:[`Function]t->bool="llvm_passmanager_initialize"externalrun_function:llvalue->[`Function]t->bool="llvm_passmanager_run_function"externalfinalize:[`Function]t->bool="llvm_passmanager_finalize"externaldispose:[<any]t->unit="llvm_passmanager_dispose"end