123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135(*===-- llvm_target.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
*
*===----------------------------------------------------------------------===*)moduleEndian=structtypet=|Big|LittleendmoduleCodeGenOptLevel=structtypet=|None|Less|Default|AggressiveendmoduleRelocMode=structtypet=|Default|Static|PIC|DynamicNoPICendmoduleCodeModel=structtypet=|Default|JITDefault|Small|Kernel|Medium|LargeendmoduleCodeGenFileType=structtypet=|AssemblyFile|ObjectFileendexceptionErrorofstringlet()=Callback.register_exception"Llvm_target.Error"(Error"")moduleDataLayout=structtypetexternalof_string:string->t="llvm_datalayout_of_string"externalas_string:t->string="llvm_datalayout_as_string"externalbyte_order:t->Endian.t="llvm_datalayout_byte_order"externalpointer_size:t->int="llvm_datalayout_pointer_size"externalintptr_type:Llvm.llcontext->t->Llvm.lltype="llvm_datalayout_intptr_type"externalqualified_pointer_size:int->t->int="llvm_datalayout_qualified_pointer_size"externalqualified_intptr_type:Llvm.llcontext->int->t->Llvm.lltype="llvm_datalayout_qualified_intptr_type"externalsize_in_bits:Llvm.lltype->t->Int64.t="llvm_datalayout_size_in_bits"externalstore_size:Llvm.lltype->t->Int64.t="llvm_datalayout_store_size"externalabi_size:Llvm.lltype->t->Int64.t="llvm_datalayout_abi_size"externalabi_align:Llvm.lltype->t->int="llvm_datalayout_abi_align"externalstack_align:Llvm.lltype->t->int="llvm_datalayout_stack_align"externalpreferred_align:Llvm.lltype->t->int="llvm_datalayout_preferred_align"externalpreferred_align_of_global:Llvm.llvalue->t->int="llvm_datalayout_preferred_align_of_global"externalelement_at_offset:Llvm.lltype->Int64.t->t->int="llvm_datalayout_element_at_offset"externaloffset_of_element:Llvm.lltype->int->t->Int64.t="llvm_datalayout_offset_of_element"endmoduleTarget=structtypetexternaldefault_triple:unit->string="llvm_target_default_triple"externalfirst:unit->toption="llvm_target_first"externalsucc:t->toption="llvm_target_succ"externalby_name:string->toption="llvm_target_by_name"externalby_triple:string->t="llvm_target_by_triple"externalname:t->string="llvm_target_name"externaldescription:t->string="llvm_target_description"externalhas_jit:t->bool="llvm_target_has_jit"externalhas_target_machine:t->bool="llvm_target_has_target_machine"externalhas_asm_backend:t->bool="llvm_target_has_asm_backend"letall()=letrecstepelemlst=matchelemwith|Sometarget->step(succtarget)(target::lst)|None->lstinstep(first())[]endmoduleTargetMachine=structtypetexternalcreate:triple:string->?cpu:string->?features:string->?level:CodeGenOptLevel.t->?reloc_mode:RelocMode.t->?code_model:CodeModel.t->Target.t->t="llvm_create_targetmachine_bytecode""llvm_create_targetmachine_native"externaltarget:t->Target.t="llvm_targetmachine_target"externaltriple:t->string="llvm_targetmachine_triple"externalcpu:t->string="llvm_targetmachine_cpu"externalfeatures:t->string="llvm_targetmachine_features"externaldata_layout:t->DataLayout.t="llvm_targetmachine_data_layout"externaladd_analysis_passes:[<Llvm.PassManager.any]Llvm.PassManager.t->t->unit="llvm_targetmachine_add_analysis_passes"externalset_verbose_asm:bool->t->unit="llvm_targetmachine_set_verbose_asm"externalemit_to_file:Llvm.llmodule->CodeGenFileType.t->string->t->unit="llvm_targetmachine_emit_to_file"externalemit_to_memory_buffer:Llvm.llmodule->CodeGenFileType.t->t->Llvm.llmemorybuffer="llvm_targetmachine_emit_to_memory_buffer"end