diff options
Diffstat (limited to 'contrib/llvm/bindings/ocaml/target')
-rw-r--r-- | contrib/llvm/bindings/ocaml/target/Makefile | 19 | ||||
-rw-r--r-- | contrib/llvm/bindings/ocaml/target/llvm_target.ml | 44 | ||||
-rw-r--r-- | contrib/llvm/bindings/ocaml/target/llvm_target.mli | 102 | ||||
-rw-r--r-- | contrib/llvm/bindings/ocaml/target/target_ocaml.c | 109 |
4 files changed, 0 insertions, 274 deletions
diff --git a/contrib/llvm/bindings/ocaml/target/Makefile b/contrib/llvm/bindings/ocaml/target/Makefile deleted file mode 100644 index 3c48cd8..0000000 --- a/contrib/llvm/bindings/ocaml/target/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -##===- bindings/ocaml/target/Makefile ----------------------*- Makefile -*-===## -# -# The LLVM Compiler Infrastructure -# -# This file is distributed under the University of Illinois Open Source -# License. See LICENSE.TXT for details. -# -##===----------------------------------------------------------------------===## -# -# This is the makefile for the Objective Caml Llvm_target interface. -# -##===----------------------------------------------------------------------===## - -LEVEL := ../../.. -LIBRARYNAME := llvm_target -UsedComponents := target -UsedOcamlInterfaces := llvm - -include ../Makefile.ocaml diff --git a/contrib/llvm/bindings/ocaml/target/llvm_target.ml b/contrib/llvm/bindings/ocaml/target/llvm_target.ml deleted file mode 100644 index ea5341d..0000000 --- a/contrib/llvm/bindings/ocaml/target/llvm_target.ml +++ /dev/null @@ -1,44 +0,0 @@ -(*===-- llvm_target.ml - LLVM Ocaml Interface ------------------*- OCaml -*-===* - * - * The LLVM Compiler Infrastructure - * - * This file is distributed under the University of Illinois Open Source - * License. See LICENSE.TXT for details. - * - *===----------------------------------------------------------------------===*) - -module Endian = struct - type t = - | Big - | Little -end - -module TargetData = struct - type t - - external create : string -> t = "llvm_targetdata_create" - external add : t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_targetdata_add" - external as_string : t -> string = "llvm_targetdata_as_string" - external invalidate_struct_layout : t -> Llvm.lltype -> unit - = "llvm_targetdata_invalidate_struct_layout" - external dispose : t -> unit = "llvm_targetdata_dispose" -end - -external byte_order : TargetData.t -> Endian.t = "llvm_byte_order" -external pointer_size : TargetData.t -> int = "llvm_pointer_size" -external intptr_type : TargetData.t -> Llvm.lltype = "LLVMIntPtrType" -external size_in_bits : TargetData.t -> Llvm.lltype -> Int64.t - = "llvm_size_in_bits" -external store_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_store_size" -external abi_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_abi_size" -external abi_align : TargetData.t -> Llvm.lltype -> int = "llvm_abi_align" -external stack_align : TargetData.t -> Llvm.lltype -> int = "llvm_stack_align" -external preferred_align : TargetData.t -> Llvm.lltype -> int - = "llvm_preferred_align" -external preferred_align_of_global : TargetData.t -> Llvm.llvalue -> int - = "llvm_preferred_align_of_global" -external element_at_offset : TargetData.t -> Llvm.lltype -> Int64.t -> int - = "llvm_element_at_offset" -external offset_of_element : TargetData.t -> Llvm.lltype -> int -> Int64.t - = "llvm_offset_of_element" diff --git a/contrib/llvm/bindings/ocaml/target/llvm_target.mli b/contrib/llvm/bindings/ocaml/target/llvm_target.mli deleted file mode 100644 index a82e1b6..0000000 --- a/contrib/llvm/bindings/ocaml/target/llvm_target.mli +++ /dev/null @@ -1,102 +0,0 @@ -(*===-- llvm_target.mli - LLVM Ocaml Interface -----------------*- OCaml -*-===* - * - * The LLVM Compiler Infrastructure - * - * This file is distributed under the University of Illinois Open Source - * License. See LICENSE.TXT for details. - * - *===----------------------------------------------------------------------===*) - -(** Target Information. - - This interface provides an ocaml API for LLVM target information, - the classes in the Target library. *) - -module Endian : sig - type t = - | Big - | Little -end - -module TargetData : sig - type t - - (** [TargetData.create rep] parses the target data string representation [rep]. - See the constructor llvm::TargetData::TargetData. *) - external create : string -> t = "llvm_targetdata_create" - - (** [add_target_data td pm] adds the target data [td] to the pass manager [pm]. - Does not take ownership of the target data. - See the method llvm::PassManagerBase::add. *) - external add : t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_targetdata_add" - - (** [as_string td] is the string representation of the target data [td]. - See the constructor llvm::TargetData::TargetData. *) - external as_string : t -> string = "llvm_targetdata_as_string" - - (** Struct layouts are speculatively cached. If a TargetDataRef is alive when - types are being refined and removed, this method must be called whenever a - struct type is removed to avoid a dangling pointer in this cache. - See the method llvm::TargetData::InvalidateStructLayoutInfo. *) - external invalidate_struct_layout : t -> Llvm.lltype -> unit - = "llvm_targetdata_invalidate_struct_layout" - - (** Deallocates a TargetData. - See the destructor llvm::TargetData::~TargetData. *) - external dispose : t -> unit = "llvm_targetdata_dispose" -end - -(** Returns the byte order of a target, either LLVMBigEndian or - LLVMLittleEndian. - See the method llvm::TargetData::isLittleEndian. *) -external byte_order : TargetData.t -> Endian.t = "llvm_byte_order" - -(** Returns the pointer size in bytes for a target. - See the method llvm::TargetData::getPointerSize. *) -external pointer_size : TargetData.t -> int = "llvm_pointer_size" - -(** Returns the integer type that is the same size as a pointer on a target. - See the method llvm::TargetData::getIntPtrType. *) -external intptr_type : TargetData.t -> Llvm.lltype = "LLVMIntPtrType" - -(** Computes the size of a type in bytes for a target. - See the method llvm::TargetData::getTypeSizeInBits. *) -external size_in_bits : TargetData.t -> Llvm.lltype -> Int64.t - = "llvm_size_in_bits" - -(** Computes the storage size of a type in bytes for a target. - See the method llvm::TargetData::getTypeStoreSize. *) -external store_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_store_size" - -(** Computes the ABI size of a type in bytes for a target. - See the method llvm::TargetData::getTypeAllocSize. *) -external abi_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_abi_size" - -(** Computes the ABI alignment of a type in bytes for a target. - See the method llvm::TargetData::getTypeABISize. *) -external abi_align : TargetData.t -> Llvm.lltype -> int = "llvm_abi_align" - -(** Computes the call frame alignment of a type in bytes for a target. - See the method llvm::TargetData::getTypeABISize. *) -external stack_align : TargetData.t -> Llvm.lltype -> int = "llvm_stack_align" - -(** Computes the preferred alignment of a type in bytes for a target. - See the method llvm::TargetData::getTypeABISize. *) -external preferred_align : TargetData.t -> Llvm.lltype -> int - = "llvm_preferred_align" - -(** Computes the preferred alignment of a global variable in bytes for a target. - See the method llvm::TargetData::getPreferredAlignment. *) -external preferred_align_of_global : TargetData.t -> Llvm.llvalue -> int - = "llvm_preferred_align_of_global" - -(** Computes the structure element that contains the byte offset for a target. - See the method llvm::StructLayout::getElementContainingOffset. *) -external element_at_offset : TargetData.t -> Llvm.lltype -> Int64.t -> int - = "llvm_element_at_offset" - -(** Computes the byte offset of the indexed struct element for a target. - See the method llvm::StructLayout::getElementContainingOffset. *) -external offset_of_element : TargetData.t -> Llvm.lltype -> int -> Int64.t - = "llvm_offset_of_element" diff --git a/contrib/llvm/bindings/ocaml/target/target_ocaml.c b/contrib/llvm/bindings/ocaml/target/target_ocaml.c deleted file mode 100644 index cc20e81..0000000 --- a/contrib/llvm/bindings/ocaml/target/target_ocaml.c +++ /dev/null @@ -1,109 +0,0 @@ -/*===-- target_ocaml.c - LLVM Ocaml Glue ------------------------*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file glues LLVM's ocaml interface to its C interface. These functions *| -|* are by and large transparent wrappers to the corresponding C functions. *| -|* *| -|* Note that these functions intentionally take liberties with the CAMLparamX *| -|* macros, since most of the parameters are not GC heap objects. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#include "llvm-c/Target.h" -#include "caml/alloc.h" - -/* string -> TargetData.t */ -CAMLprim LLVMTargetDataRef llvm_targetdata_create(value StringRep) { - return LLVMCreateTargetData(String_val(StringRep)); -} - -/* TargetData.t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_targetdata_add(LLVMTargetDataRef TD, LLVMPassManagerRef PM){ - LLVMAddTargetData(TD, PM); - return Val_unit; -} - -/* TargetData.t -> string */ -CAMLprim value llvm_targetdata_as_string(LLVMTargetDataRef TD) { - char *StringRep = LLVMCopyStringRepOfTargetData(TD); - value Copy = copy_string(StringRep); - LLVMDisposeMessage(StringRep); - return Copy; -} - -/* TargetData.t -> Llvm.lltype -> unit */ -CAMLprim value llvm_targetdata_invalidate_struct_layout(LLVMTargetDataRef TD, - LLVMTypeRef Ty) { - LLVMInvalidateStructLayout(TD, Ty); - return Val_unit; -} - -/* TargetData.t -> unit */ -CAMLprim value llvm_targetdata_dispose(LLVMTargetDataRef TD) { - LLVMDisposeTargetData(TD); - return Val_unit; -} - -/* TargetData.t -> Endian.t */ -CAMLprim value llvm_byte_order(LLVMTargetDataRef TD) { - return Val_int(LLVMByteOrder(TD)); -} - -/* TargetData.t -> int */ -CAMLprim value llvm_pointer_size(LLVMTargetDataRef TD) { - return Val_int(LLVMPointerSize(TD)); -} - -/* TargetData.t -> Llvm.lltype -> Int64.t */ -CAMLprim value llvm_size_in_bits(LLVMTargetDataRef TD, LLVMTypeRef Ty) { - return caml_copy_int64(LLVMSizeOfTypeInBits(TD, Ty)); -} - -/* TargetData.t -> Llvm.lltype -> Int64.t */ -CAMLprim value llvm_store_size(LLVMTargetDataRef TD, LLVMTypeRef Ty) { - return caml_copy_int64(LLVMStoreSizeOfType(TD, Ty)); -} - -/* TargetData.t -> Llvm.lltype -> Int64.t */ -CAMLprim value llvm_abi_size(LLVMTargetDataRef TD, LLVMTypeRef Ty) { - return caml_copy_int64(LLVMABISizeOfType(TD, Ty)); -} - -/* TargetData.t -> Llvm.lltype -> int */ -CAMLprim value llvm_abi_align(LLVMTargetDataRef TD, LLVMTypeRef Ty) { - return Val_int(LLVMABIAlignmentOfType(TD, Ty)); -} - -/* TargetData.t -> Llvm.lltype -> int */ -CAMLprim value llvm_stack_align(LLVMTargetDataRef TD, LLVMTypeRef Ty) { - return Val_int(LLVMCallFrameAlignmentOfType(TD, Ty)); -} - -/* TargetData.t -> Llvm.lltype -> int */ -CAMLprim value llvm_preferred_align(LLVMTargetDataRef TD, LLVMTypeRef Ty) { - return Val_int(LLVMPreferredAlignmentOfType(TD, Ty)); -} - -/* TargetData.t -> Llvm.llvalue -> int */ -CAMLprim value llvm_preferred_align_of_global(LLVMTargetDataRef TD, - LLVMValueRef GlobalVar) { - return Val_int(LLVMPreferredAlignmentOfGlobal(TD, GlobalVar)); -} - -/* TargetData.t -> Llvm.lltype -> Int64.t -> int */ -CAMLprim value llvm_element_at_offset(LLVMTargetDataRef TD, LLVMTypeRef Ty, - value Offset) { - return Val_int(LLVMElementAtOffset(TD, Ty, Int_val(Offset))); -} - -/* TargetData.t -> Llvm.lltype -> int -> Int64.t */ -CAMLprim value llvm_offset_of_element(LLVMTargetDataRef TD, LLVMTypeRef Ty, - value Index) { - return caml_copy_int64(LLVMOffsetOfElement(TD, Ty, Int_val(Index))); -} |