123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619(*===-- llvm_debuginfo.ml - LLVM OCaml Interface --------------*- OCaml -*-===*
*
* 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
*
*===----------------------------------------------------------------------===*)typelldibuilder(** Source languages known by DWARF. *)moduleDWARFSourceLanguageKind=structtypet=|C89|C|Ada83|C_plus_plus|Cobol74|Cobol85|Fortran77|Fortran90|Pascal83|Modula2(* New in DWARF v3: *)|LLVMJava|C99|Ada95|Fortran95|PLI|ObjC|ObjC_plus_plus|UPC|D(* New in DWARF v4: *)|LLVMPython(* New in DWARF v5: *)|LLVMOpenCL|Go|Modula3|Haskell|C_plus_plus_03|C_plus_plus_11|OCaml|Rust|C11|Swift|Julia|Dylan|C_plus_plus_14|Fortran03|Fortran08|RenderScript|BLISS(* Vendor extensions: *)|LLVMMips_Assembler|GOOGLE_RenderScript|BORLAND_DelphiendmoduleDIFlag=structtypet=|Zero|Private|Protected|Public|FwdDecl|AppleBlock|ReservedBit4|Virtual|Artificial|Explicit|Prototyped|ObjcClassComplete|ObjectPointer|Vector|StaticMember|LValueReference|RValueReference|Reserved|SingleInheritance|MultipleInheritance|VirtualInheritance|IntroducedVirtual|BitField|NoReturn|TypePassByValue|TypePassByReference|EnumClass|FixedEnum|Thunk|NonTrivial|BigEndian|LittleEndian|IndirectVirtualBase|Accessibility|PtrToMemberRependtypelldiflagsexternaldiflags_get:DIFlag.t->lldiflags="llvm_diflags_get"externaldiflags_set:lldiflags->DIFlag.t->lldiflags="llvm_diflags_set"externaldiflags_test:lldiflags->DIFlag.t->bool="llvm_diflags_test"(** The kind of metadata nodes. *)moduleMetadataKind=structtypet=|MDStringMetadataKind|ConstantAsMetadataMetadataKind|LocalAsMetadataMetadataKind|DistinctMDOperandPlaceholderMetadataKind|MDTupleMetadataKind|DILocationMetadataKind|DIExpressionMetadataKind|DIGlobalVariableExpressionMetadataKind|GenericDINodeMetadataKind|DISubrangeMetadataKind|DIEnumeratorMetadataKind|DIBasicTypeMetadataKind|DIDerivedTypeMetadataKind|DICompositeTypeMetadataKind|DISubroutineTypeMetadataKind|DIFileMetadataKind|DICompileUnitMetadataKind|DISubprogramMetadataKind|DILexicalBlockMetadataKind|DILexicalBlockFileMetadataKind|DINamespaceMetadataKind|DIModuleMetadataKind|DITemplateTypeParameterMetadataKind|DITemplateValueParameterMetadataKind|DIGlobalVariableMetadataKind|DILocalVariableMetadataKind|DILabelMetadataKind|DIObjCPropertyMetadataKind|DIImportedEntityMetadataKind|DIMacroMetadataKind|DIMacroFileMetadataKind|DICommonBlockMetadataKindend(** The amount of debug information to emit. *)moduleDWARFEmissionKind=structtypet=None|Full|LineTablesOnlyendexternaldebug_metadata_version:unit->int="llvm_debug_metadata_version"externalget_module_debug_metadata_version:Llvm.llmodule->int="llvm_get_module_debug_metadata_version"externaldibuilder:Llvm.llmodule->lldibuilder="llvm_dibuilder"externaldibuild_finalize:lldibuilder->unit="llvm_dibuild_finalize"(* See LLVMDIBuilderCreateCompileUnit for argument details. *)externaldibuild_create_compile_unit:lldibuilder->DWARFSourceLanguageKind.t->file_ref:Llvm.llmetadata->producer:string->is_optimized:bool->flags:string->runtime_ver:int->split_name:string->DWARFEmissionKind.t->dwoid:int->di_inlining:bool->di_profiling:bool->sys_root:string->sdk:string->Llvm.llmetadata="llvm_dibuild_create_compile_unit_bytecode""llvm_dibuild_create_compile_unit_native"externaldibuild_create_file:lldibuilder->filename:string->directory:string->Llvm.llmetadata="llvm_dibuild_create_file"externaldibuild_create_module:lldibuilder->parent_ref:Llvm.llmetadata->name:string->config_macros:string->include_path:string->sys_root:string->Llvm.llmetadata="llvm_dibuild_create_module_bytecode""llvm_dibuild_create_module_native"externaldibuild_create_namespace:lldibuilder->parent_ref:Llvm.llmetadata->name:string->export_symbols:bool->Llvm.llmetadata="llvm_dibuild_create_namespace"externaldibuild_create_function:lldibuilder->scope:Llvm.llmetadata->name:string->linkage_name:string->file:Llvm.llmetadata->line_no:int->ty:Llvm.llmetadata->is_local_to_unit:bool->is_definition:bool->scope_line:int->flags:lldiflags->is_optimized:bool->Llvm.llmetadata="llvm_dibuild_create_function_bytecode""llvm_dibuild_create_function_native"externaldibuild_create_lexical_block:lldibuilder->scope:Llvm.llmetadata->file:Llvm.llmetadata->line:int->column:int->Llvm.llmetadata="llvm_dibuild_create_lexical_block"externaldibuild_create_debug_location_helper:Llvm.llcontext->line:int->column:int->scope:Llvm.llmetadata->inlined_at:Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_debug_location"externalllmetadata_null:unit->Llvm.llmetadata="llvm_metadata_null"letdibuild_create_debug_location?(inlined_at=llmetadata_null())llctx~line~column~scope=dibuild_create_debug_location_helperllctxlinecolumnscopeinlined_atexternaldi_location_get_line:location:Llvm.llmetadata->int="llvm_di_location_get_line"externaldi_location_get_column:location:Llvm.llmetadata->int="llvm_di_location_get_column"externaldi_location_get_scope:location:Llvm.llmetadata->Llvm.llmetadata="llvm_di_location_get_scope"externaldi_location_get_inlined_at:location:Llvm.llmetadata->Llvm.llmetadataoption="llvm_di_location_get_inlined_at"externaldi_scope_get_file:scope:Llvm.llmetadata->Llvm.llmetadataoption="llvm_di_scope_get_file"externaldi_file_get_directory:file:Llvm.llmetadata->string="llvm_di_file_get_directory"externaldi_file_get_filename:file:Llvm.llmetadata->string="llvm_di_file_get_filename"externaldi_file_get_source:file:Llvm.llmetadata->string="llvm_di_file_get_source"externaldibuild_get_or_create_type_array:lldibuilder->data:Llvm.llmetadataarray->Llvm.llmetadata="llvm_dibuild_get_or_create_type_array"externaldibuild_get_or_create_array:lldibuilder->data:Llvm.llmetadataarray->Llvm.llmetadata="llvm_dibuild_get_or_create_array"externaldibuild_create_subroutine_type:lldibuilder->file:Llvm.llmetadata->param_types:Llvm.llmetadataarray->lldiflags->Llvm.llmetadata="llvm_dibuild_create_subroutine_type"externaldibuild_create_enumerator:lldibuilder->name:string->value:int->is_unsigned:bool->Llvm.llmetadata="llvm_dibuild_create_enumerator"externaldibuild_create_enumeration_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_number:int->size_in_bits:int->align_in_bits:int->elements:Llvm.llmetadataarray->class_ty:Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_enumeration_type_bytecode""llvm_dibuild_create_enumeration_type_native"externaldibuild_create_union_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_number:int->size_in_bits:int->align_in_bits:int->lldiflags->elements:Llvm.llmetadataarray->run_time_language:int->unique_id:string->Llvm.llmetadata="llvm_dibuild_create_union_type_bytecode""llvm_dibuild_create_union_type_native"externaldibuild_create_array_type:lldibuilder->size:int->align_in_bits:int->ty:Llvm.llmetadata->subscripts:Llvm.llmetadataarray->Llvm.llmetadata="llvm_dibuild_create_array_type"externaldibuild_create_vector_type:lldibuilder->size:int->align_in_bits:int->ty:Llvm.llmetadata->subscripts:Llvm.llmetadataarray->Llvm.llmetadata="llvm_dibuild_create_array_type"externaldibuild_create_unspecified_type:lldibuilder->name:string->Llvm.llmetadata="llvm_dibuild_create_unspecified_type"externaldibuild_create_basic_type:lldibuilder->name:string->size_in_bits:int->encoding:int->lldiflags->Llvm.llmetadata="llvm_dibuild_create_basic_type"externaldibuild_create_pointer_type:lldibuilder->pointee_ty:Llvm.llmetadata->size_in_bits:int->align_in_bits:int->address_space:int->name:string->Llvm.llmetadata="llvm_dibuild_create_pointer_type_bytecode""llvm_dibuild_create_pointer_type_native"externaldibuild_create_struct_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_number:int->size_in_bits:int->align_in_bits:int->lldiflags->derived_from:Llvm.llmetadata->elements:Llvm.llmetadataarray->DWARFSourceLanguageKind.t->vtable_holder:Llvm.llmetadata->unique_id:string->Llvm.llmetadata="llvm_dibuild_create_struct_type_bytecode""llvm_dibuild_create_struct_type_native"externaldibuild_create_member_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_number:int->size_in_bits:int->align_in_bits:int->offset_in_bits:int->lldiflags->ty:Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_member_type_bytecode""llvm_dibuild_create_member_type_native"externaldibuild_create_static_member_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_number:int->ty:Llvm.llmetadata->lldiflags->const_val:Llvm.llvalue->align_in_bits:int->Llvm.llmetadata="llvm_dibuild_create_static_member_type_bytecode""llvm_dibuild_create_static_member_type_native"externaldibuild_create_member_pointer_type:lldibuilder->pointee_type:Llvm.llmetadata->class_type:Llvm.llmetadata->size_in_bits:int->align_in_bits:int->lldiflags->Llvm.llmetadata="llvm_dibuild_create_member_pointer_type_bytecode""llvm_dibuild_create_member_pointer_type_native"externaldibuild_create_object_pointer_type:lldibuilder->Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_object_pointer_type"externaldibuild_create_qualified_type:lldibuilder->tag:int->Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_qualified_type"externaldibuild_create_reference_type:lldibuilder->tag:int->Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_reference_type"externaldibuild_create_null_ptr_type:lldibuilder->Llvm.llmetadata="llvm_dibuild_create_null_ptr_type"externaldibuild_create_typedef:lldibuilder->ty:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_no:int->scope:Llvm.llmetadata->align_in_bits:int->Llvm.llmetadata="llvm_dibuild_create_typedef_bytecode""llvm_dibuild_create_typedef_native"externaldibuild_create_inheritance:lldibuilder->ty:Llvm.llmetadata->base_ty:Llvm.llmetadata->base_offset:int->vb_ptr_offset:int->lldiflags->Llvm.llmetadata="llvm_dibuild_create_inheritance_bytecode""llvm_dibuild_create_inheritance_native"externaldibuild_create_forward_decl:lldibuilder->tag:int->name:string->scope:Llvm.llmetadata->file:Llvm.llmetadata->line:int->runtime_lang:int->size_in_bits:int->align_in_bits:int->unique_identifier:string->Llvm.llmetadata="llvm_dibuild_create_forward_decl_bytecode""llvm_dibuild_create_forward_decl_native"externaldibuild_create_replaceable_composite_type:lldibuilder->tag:int->name:string->scope:Llvm.llmetadata->file:Llvm.llmetadata->line:int->runtime_lang:int->size_in_bits:int->align_in_bits:int->lldiflags->unique_identifier:string->Llvm.llmetadata="llvm_dibuild_create_replaceable_composite_type_bytecode""llvm_dibuild_create_replaceable_composite_type_native"externaldibuild_create_bit_field_member_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_num:int->size_in_bits:int->offset_in_bits:int->storage_offset_in_bits:int->lldiflags->ty:Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_bit_field_member_type_bytecode""llvm_dibuild_create_bit_field_member_type_native"externaldibuild_create_class_type:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line_number:int->size_in_bits:int->align_in_bits:int->offset_in_bits:int->lldiflags->derived_from:Llvm.llmetadata->elements:Llvm.llmetadataarray->vtable_holder:Llvm.llmetadata->template_params_node:Llvm.llmetadata->unique_identifier:string->Llvm.llmetadata="llvm_dibuild_create_class_type_bytecode""llvm_dibuild_create_class_type_native"externaldibuild_create_artificial_type:lldibuilder->ty:Llvm.llmetadata->Llvm.llmetadata="llvm_dibuild_create_artificial_type"externaldi_type_get_name:Llvm.llmetadata->string="llvm_di_type_get_name"externaldi_type_get_size_in_bits:Llvm.llmetadata->int="llvm_di_type_get_size_in_bits"externaldi_type_get_offset_in_bits:Llvm.llmetadata->int="llvm_di_type_get_offset_in_bits"externaldi_type_get_align_in_bits:Llvm.llmetadata->int="llvm_di_type_get_align_in_bits"externaldi_type_get_line:Llvm.llmetadata->int="llvm_di_type_get_line"externaldi_type_get_flags:Llvm.llmetadata->lldiflags="llvm_di_type_get_flags"externalget_subprogram:Llvm.llvalue->Llvm.llmetadataoption="llvm_get_subprogram"externalset_subprogram:Llvm.llvalue->Llvm.llmetadata->unit="llvm_set_subprogram"externaldi_subprogram_get_line:Llvm.llmetadata->int="llvm_di_subprogram_get_line"externalinstr_get_debug_loc:Llvm.llvalue->Llvm.llmetadataoption="llvm_instr_get_debug_loc"externalinstr_set_debug_loc_helper:Llvm.llvalue->Llvm.llmetadata->unit="llvm_instr_set_debug_loc"letinstr_set_debug_locimopt=matchmoptwith|None->instr_set_debug_loc_helperi(llmetadata_null())|Somem->instr_set_debug_loc_helperimexternaldibuild_create_constant_value_expression:lldibuilder->int->Llvm.llmetadata="llvm_dibuild_create_constant_value_expression"externaldibuild_create_global_variable_expression:lldibuilder->scope:Llvm.llmetadata->name:string->linkage:string->file:Llvm.llmetadata->line:int->ty:Llvm.llmetadata->is_local_to_unit:bool->expr:Llvm.llmetadata->decl:Llvm.llmetadata->align_in_bits:int->Llvm.llmetadata="llvm_dibuild_create_global_variable_expression_bytecode""llvm_dibuild_create_global_variable_expression_native"externaldi_global_variable_expression_get_variable:Llvm.llmetadata->Llvm.llmetadataoption="llvm_di_global_variable_expression_get_variable"externaldi_variable_get_line:Llvm.llmetadata->int="llvm_di_variable_get_line"externaldi_variable_get_file:Llvm.llmetadata->Llvm.llmetadataoption="llvm_di_variable_get_file"externalget_metadata_kind:Llvm.llmetadata->MetadataKind.t="llvm_get_metadata_kind"externaldibuild_create_auto_variable:lldibuilder->scope:Llvm.llmetadata->name:string->file:Llvm.llmetadata->line:int->ty:Llvm.llmetadata->always_preserve:bool->lldiflags->align_in_bits:int->Llvm.llmetadata="llvm_dibuild_create_auto_variable_bytecode""llvm_dibuild_create_auto_variable_native"externaldibuild_create_parameter_variable:lldibuilder->scope:Llvm.llmetadata->name:string->argno:int->file:Llvm.llmetadata->line:int->ty:Llvm.llmetadata->always_preserve:bool->lldiflags->Llvm.llmetadata="llvm_dibuild_create_parameter_variable_bytecode""llvm_dibuild_create_parameter_variable_native"externaldibuild_insert_declare_before:lldibuilder->storage:Llvm.llvalue->var_info:Llvm.llmetadata->expr:Llvm.llmetadata->location:Llvm.llmetadata->instr:Llvm.llvalue->Llvm.llvalue="llvm_dibuild_insert_declare_before_bytecode""llvm_dibuild_insert_declare_before_native"externaldibuild_insert_declare_at_end:lldibuilder->storage:Llvm.llvalue->var_info:Llvm.llmetadata->expr:Llvm.llmetadata->location:Llvm.llmetadata->block:Llvm.llbasicblock->Llvm.llvalue="llvm_dibuild_insert_declare_at_end_bytecode""llvm_dibuild_insert_declare_at_end_native"externaldibuild_expression:lldibuilder->Int64.tarray->Llvm.llmetadata="llvm_dibuild_expression"