# Module Llvm_executionengine.GenericValue

    module GenericValue: sig .. end

    type t

`GenericValue.t` is a boxed union type used to portably pass arguments to and receive values from the execution engine. It supports only a limited selection of types; for more complex argument types, it is necessary to generate a stub function by hand or to pass parameters by reference. See the struct `llvm::GenericValue`.

    val of_float : Llvm.lltype -> float -> t

`of_float fpty n` boxes the float `n` in a float-valued generic value according to the floating point type `fpty`. See the fields `llvm::GenericValue::DoubleVal` and `llvm::GenericValue::FloatVal`.

    val of_pointer : 'a -> t

`of_pointer v` boxes the pointer value `v` in a generic value. See the field `llvm::GenericValue::PointerVal`.

    val of_int32 : Llvm.lltype -> int32 -> t

`of_int32 n w` boxes the int32 `i` in a generic value with the bitwidth `w`. See the field `llvm::GenericValue::IntVal`.

    val of_int : Llvm.lltype -> int -> t

`of_int n w` boxes the int `i` in a generic value with the bitwidth `w`. See the field `llvm::GenericValue::IntVal`.

    val of_nativeint : Llvm.lltype -> nativeint -> t

`of_natint n w` boxes the native int `i` in a generic value with the bitwidth `w`. See the field `llvm::GenericValue::IntVal`.

    val of_int64 : Llvm.lltype -> int64 -> t

`of_int64 n w` boxes the int64 `i` in a generic value with the bitwidth `w`. See the field `llvm::GenericValue::IntVal`.

    val as_float : Llvm.lltype -> t -> float

`as_float fpty gv` unboxes the floating point-valued generic value `gv` of floating point type `fpty`. See the fields `llvm::GenericValue::DoubleVal` and `llvm::GenericValue::FloatVal`.

    val as_pointer : t -> 'a

`as_pointer gv` unboxes the pointer-valued generic value `gv`. See the field `llvm::GenericValue::PointerVal`.

    val as_int32 : t -> int32

`as_int32 gv` unboxes the integer-valued generic value `gv` as an `int32`. Is invalid if `gv` has a bitwidth greater than 32 bits. See the field `llvm::GenericValue::IntVal`.

    val as_int : t -> int

`as_int gv` unboxes the integer-valued generic value `gv` as an `int`. Is invalid if `gv` has a bitwidth greater than the host bit width (but the most significant bit may be lost). See the field `llvm::GenericValue::IntVal`.

    val as_nativeint : t -> nativeint

`as_natint gv` unboxes the integer-valued generic value `gv` as a `nativeint`. Is invalid if `gv` has a bitwidth greater than `nativeint`. See the field `llvm::GenericValue::IntVal`.

    val as_int64 : t -> int64

`as_int64 gv` returns the integer-valued generic value `gv` as an `int64`. Is invalid if `gv` has a bitwidth greater than `int64`. See the field `llvm::GenericValue::IntVal`.