summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bindings/ocaml/llvm/llvm.ml186
-rw-r--r--bindings/ocaml/llvm/llvm.mli143
-rw-r--r--bindings/ocaml/llvm/llvm_ocaml.c18
-rw-r--r--test/Bindings/Ocaml/vmcore.ml43
4 files changed, 204 insertions, 186 deletions
diff --git a/bindings/ocaml/llvm/llvm.ml b/bindings/ocaml/llvm/llvm.ml
index 58d9d5013e..c2c4e46ce7 100644
--- a/bindings/ocaml/llvm/llvm.ml
+++ b/bindings/ocaml/llvm/llvm.ml
@@ -17,37 +17,43 @@ type llbuilder
type llmoduleprovider
type llmemorybuffer
-type type_kind =
- Void_type
-| Float_type
-| Double_type
-| X86fp80_type
-| Fp128_type
-| Ppc_fp128_type
-| Label_type
-| Integer_type
-| Function_type
-| Struct_type
-| Array_type
-| Pointer_type
-| Opaque_type
-| Vector_type
-
-type linkage =
- External_linkage
-| Link_once_linkage
-| Weak_linkage
-| Appending_linkage
-| Internal_linkage
-| Dllimport_linkage
-| Dllexport_linkage
-| External_weak_linkage
-| Ghost_linkage
-
-type visibility =
- Default_visibility
-| Hidden_visibility
-| Protected_visibility
+module TypeKind = struct
+ type t =
+ | Void
+ | Float
+ | Double
+ | X86fp80
+ | Fp128
+ | Ppc_fp128
+ | Label
+ | Integer
+ | Function
+ | Struct
+ | Array
+ | Pointer
+ | Opaque
+ | Vector
+end
+
+module Linkage = struct
+ type t =
+ | External
+ | Link_once
+ | Weak
+ | Appending
+ | Internal
+ | Dllimport
+ | Dllexport
+ | External_weak
+ | Ghost
+end
+
+module Visibility = struct
+ type t =
+ | Default
+ | Hidden
+ | Protected
+end
let ccc = 0
let fastcc = 8
@@ -55,35 +61,39 @@ let coldcc = 9
let x86_stdcallcc = 64
let x86_fastcallcc = 65
-type int_predicate =
- Icmp_eq
-| Icmp_ne
-| Icmp_ugt
-| Icmp_uge
-| Icmp_ult
-| Icmp_ule
-| Icmp_sgt
-| Icmp_sge
-| Icmp_slt
-| Icmp_sle
-
-type real_predicate =
- Fcmp_false
-| Fcmp_oeq
-| Fcmp_ogt
-| Fcmp_oge
-| Fcmp_olt
-| Fcmp_ole
-| Fcmp_one
-| Fcmp_ord
-| Fcmp_uno
-| Fcmp_ueq
-| Fcmp_ugt
-| Fcmp_uge
-| Fcmp_ult
-| Fcmp_ule
-| Fcmp_une
-| Fcmp_true
+module Icmp = struct
+ type t =
+ | Eq
+ | Ne
+ | Ugt
+ | Uge
+ | Ult
+ | Ule
+ | Sgt
+ | Sge
+ | Slt
+ | Sle
+end
+
+module Fcmp = struct
+ type t =
+ | False
+ | Oeq
+ | Ogt
+ | Oge
+ | Olt
+ | Ole
+ | One
+ | Ord
+ | Uno
+ | Ueq
+ | Ugt
+ | Uge
+ | Ult
+ | Ule
+ | Une
+ | True
+end
exception IoError of string
@@ -103,7 +113,7 @@ external delete_type_name : string -> llmodule -> unit
(*===-- Types -------------------------------------------------------------===*)
-external classify_type : lltype -> type_kind = "llvm_classify_type"
+external classify_type : lltype -> TypeKind.t = "llvm_classify_type"
(*--... Operations on integer types ........................................--*)
external _i1_type : unit -> lltype = "llvm_i1_type"
@@ -220,9 +230,9 @@ external const_frem : llvalue -> llvalue -> llvalue = "LLVMConstFRem"
external const_and : llvalue -> llvalue -> llvalue = "LLVMConstAnd"
external const_or : llvalue -> llvalue -> llvalue = "LLVMConstOr"
external const_xor : llvalue -> llvalue -> llvalue = "LLVMConstXor"
-external const_icmp : int_predicate -> llvalue -> llvalue -> llvalue
+external const_icmp : Icmp.t -> llvalue -> llvalue -> llvalue
= "llvm_const_icmp"
-external const_fcmp : real_predicate -> llvalue -> llvalue -> llvalue
+external const_fcmp : Fcmp.t -> llvalue -> llvalue -> llvalue
= "llvm_const_fcmp"
external const_shl : llvalue -> llvalue -> llvalue = "LLVMConstShl"
external const_lshr : llvalue -> llvalue -> llvalue = "LLVMConstLShr"
@@ -251,12 +261,12 @@ external const_shufflevector : llvalue -> llvalue -> llvalue -> llvalue
(*--... Operations on global variables, functions, and aliases (globals) ...--*)
external is_declaration : llvalue -> bool = "llvm_is_declaration"
-external linkage : llvalue -> linkage = "llvm_linkage"
-external set_linkage : linkage -> llvalue -> unit = "llvm_set_linkage"
+external linkage : llvalue -> Linkage.t = "llvm_linkage"
+external set_linkage : Linkage.t -> llvalue -> unit = "llvm_set_linkage"
external section : llvalue -> string = "llvm_section"
external set_section : string -> llvalue -> unit = "llvm_set_section"
-external visibility : llvalue -> visibility = "llvm_visibility"
-external set_visibility : visibility -> llvalue -> unit = "llvm_set_visibility"
+external visibility : llvalue -> Visibility.t = "llvm_visibility"
+external set_visibility : Visibility.t -> llvalue -> unit = "llvm_set_visibility"
external alignment : llvalue -> int = "llvm_alignment"
external set_alignment : int -> llvalue -> unit = "llvm_set_alignment"
external is_global_constant : llvalue -> bool = "llvm_is_global_constant"
@@ -415,9 +425,9 @@ external build_bitcast : llvalue -> lltype -> string -> llbuilder -> llvalue
= "llvm_build_bitcast"
(*--... Comparisons ........................................................--*)
-external build_icmp : int_predicate -> llvalue -> llvalue -> string ->
+external build_icmp : Icmp.t -> llvalue -> llvalue -> string ->
llbuilder -> llvalue = "llvm_build_icmp"
-external build_fcmp : real_predicate -> llvalue -> llvalue -> string ->
+external build_fcmp : Fcmp.t -> llvalue -> llvalue -> string ->
llbuilder -> llvalue = "llvm_build_fcmp"
(*--... Miscellaneous instructions .........................................--*)
@@ -471,28 +481,28 @@ let concat2 sep arr =
let rec string_of_lltype ty =
(* FIXME: stop infinite recursion! :) *)
match classify_type ty with
- Integer_type -> "i" ^ string_of_int (integer_bitwidth ty)
- | Pointer_type -> (string_of_lltype (element_type ty)) ^ "*"
- | Struct_type ->
+ TypeKind.Integer -> "i" ^ string_of_int (integer_bitwidth ty)
+ | TypeKind.Pointer -> (string_of_lltype (element_type ty)) ^ "*"
+ | TypeKind.Struct ->
let s = "{ " ^ (concat2 ", " (
Array.map string_of_lltype (element_types ty)
)) ^ " }" in
if is_packed ty
then "<" ^ s ^ ">"
else s
- | Array_type -> "[" ^ (string_of_int (array_length ty)) ^
- " x " ^ (string_of_lltype (element_type ty)) ^ "]"
- | Vector_type -> "<" ^ (string_of_int (vector_size ty)) ^
- " x " ^ (string_of_lltype (element_type ty)) ^ ">"
- | Opaque_type -> "opaque"
- | Function_type -> string_of_lltype (return_type ty) ^
- " (" ^ (concat2 ", " (
- Array.map string_of_lltype (param_types ty)
- )) ^ ")"
- | Label_type -> "label"
- | Ppc_fp128_type -> "ppc_fp128"
- | Fp128_type -> "fp128"
- | X86fp80_type -> "x86_fp80"
- | Double_type -> "double"
- | Float_type -> "float"
- | Void_type -> "void"
+ | TypeKind.Array -> "[" ^ (string_of_int (array_length ty)) ^
+ " x " ^ (string_of_lltype (element_type ty)) ^ "]"
+ | TypeKind.Vector -> "<" ^ (string_of_int (vector_size ty)) ^
+ " x " ^ (string_of_lltype (element_type ty)) ^ ">"
+ | TypeKind.Opaque -> "opaque"
+ | TypeKind.Function -> string_of_lltype (return_type ty) ^
+ " (" ^ (concat2 ", " (
+ Array.map string_of_lltype (param_types ty)
+ )) ^ ")"
+ | TypeKind.Label -> "label"
+ | TypeKind.Ppc_fp128 -> "ppc_fp128"
+ | TypeKind.Fp128 -> "fp128"
+ | TypeKind.X86fp80 -> "x86_fp80"
+ | TypeKind.Double -> "double"
+ | TypeKind.Float -> "float"
+ | TypeKind.Void -> "void"
diff --git a/bindings/ocaml/llvm/llvm.mli b/bindings/ocaml/llvm/llvm.mli
index 546ab4579f..4f3bee7fab 100644
--- a/bindings/ocaml/llvm/llvm.mli
+++ b/bindings/ocaml/llvm/llvm.mli
@@ -50,41 +50,47 @@ type llmemorybuffer
(** The kind of an [lltype], the result of [classify_type ty]. See the
[llvm::Type::TypeID] enumeration. **)
-type type_kind =
- Void_type
-| Float_type
-| Double_type
-| X86fp80_type
-| Fp128_type
-| Ppc_fp128_type
-| Label_type
-| Integer_type
-| Function_type
-| Struct_type
-| Array_type
-| Pointer_type
-| Opaque_type
-| Vector_type
+module TypeKind : sig
+ type t =
+ Void
+ | Float
+ | Double
+ | X86fp80
+ | Fp128
+ | Ppc_fp128
+ | Label
+ | Integer
+ | Function
+ | Struct
+ | Array
+ | Pointer
+ | Opaque
+ | Vector
+end
(** The linkage of a global value, accessed with [linkage gv] and
[set_linkage l gv]. See [llvm::GlobalValue::LinkageTypes]. **)
-type linkage =
- External_linkage
-| Link_once_linkage
-| Weak_linkage
-| Appending_linkage
-| Internal_linkage
-| Dllimport_linkage
-| Dllexport_linkage
-| External_weak_linkage
-| Ghost_linkage
+module Linkage : sig
+ type t =
+ External
+ | Link_once
+ | Weak
+ | Appending
+ | Internal
+ | Dllimport
+ | Dllexport
+ | External_weak
+ | Ghost
+end
(** The linker visibility of a global value, accessed with [visibility gv] and
[set_visibility v gv]. See [llvm::GlobalValue::VisibilityTypes]. **)
-type visibility =
- Default_visibility
-| Hidden_visibility
-| Protected_visibility
+module Visibility : sig
+ type t =
+ Default
+ | Hidden
+ | Protected
+end
(* The following calling convention values may be accessed with
[function_call_conv f] and [set_function_call_conv conv f]. Calling
@@ -102,37 +108,41 @@ val x86_fastcallcc : int (** [x86_fastcallcc] is the familiar fastcall calling
(** The predicate for an integer comparison ([icmp]) instruction.
See the [llvm::ICmpInst::Predicate] enumeration. **)
-type int_predicate =
- Icmp_eq
-| Icmp_ne
-| Icmp_ugt
-| Icmp_uge
-| Icmp_ult
-| Icmp_ule
-| Icmp_sgt
-| Icmp_sge
-| Icmp_slt
-| Icmp_sle
+module Icmp : sig
+ type t =
+ | Eq
+ | Ne
+ | Ugt
+ | Uge
+ | Ult
+ | Ule
+ | Sgt
+ | Sge
+ | Slt
+ | Sle
+end
(** The predicate for a floating-point comparison ([fcmp]) instruction.
See the [llvm::FCmpInst::Predicate] enumeration. **)
-type real_predicate =
- Fcmp_false
-| Fcmp_oeq
-| Fcmp_ogt
-| Fcmp_oge
-| Fcmp_olt
-| Fcmp_ole
-| Fcmp_one
-| Fcmp_ord
-| Fcmp_uno
-| Fcmp_ueq
-| Fcmp_ugt
-| Fcmp_uge
-| Fcmp_ult
-| Fcmp_ule
-| Fcmp_une
-| Fcmp_true
+module Fcmp : sig
+ type t =
+ | False
+ | Oeq
+ | Ogt
+ | Oge
+ | Olt
+ | Ole
+ | One
+ | Ord
+ | Uno
+ | Ueq
+ | Ugt
+ | Uge
+ | Ult
+ | Ule
+ | Une
+ | True
+end
exception IoError of string
@@ -167,7 +177,7 @@ external delete_type_name : string -> llmodule -> unit
(** [classify_type ty] returns the [type_kind] corresponding to the type [ty].
See the method [llvm::Type::getTypeID]. **)
-external classify_type : lltype -> type_kind = "llvm_classify_type"
+external classify_type : lltype -> TypeKind.t = "llvm_classify_type"
(** [string_of_lltype ty] returns a string describing the type [ty]. **)
val string_of_lltype : lltype -> string
@@ -504,13 +514,13 @@ external const_xor : llvalue -> llvalue -> llvalue = "LLVMConstXor"
(** [const_icmp pred c1 c2] returns the constant comparison of two integer
constants, [c1 pred c2].
See the method [llvm::ConstantExpr::getICmp]. **)
-external const_icmp : int_predicate -> llvalue -> llvalue -> llvalue
+external const_icmp : Icmp.t -> llvalue -> llvalue -> llvalue
= "llvm_const_icmp"
(** [const_fcmp pred c1 c2] returns the constant comparison of two floating
point constants, [c1 pred c2].
See the method [llvm::ConstantExpr::getFCmp]. **)
-external const_fcmp : real_predicate -> llvalue -> llvalue -> llvalue
+external const_fcmp : Fcmp.t -> llvalue -> llvalue -> llvalue
= "llvm_const_fcmp"
(** [const_shl c1 c2] returns the constant integer [c1] left-shifted by the
@@ -631,11 +641,11 @@ external is_declaration : llvalue -> bool = "llvm_is_declaration"
(** [linkage g] returns the linkage of the global value [g].
See the method [llvm::GlobalValue::getLinkage]. **)
-external linkage : llvalue -> linkage = "llvm_linkage"
+external linkage : llvalue -> Linkage.t = "llvm_linkage"
(** [set_linkage l g] sets the linkage of the global value [g] to [l].
See the method [llvm::GlobalValue::setLinkage]. **)
-external set_linkage : linkage -> llvalue -> unit = "llvm_set_linkage"
+external set_linkage : Linkage.t -> llvalue -> unit = "llvm_set_linkage"
(** [section g] returns the linker section of the global value [g].
See the method [llvm::GlobalValue::getSection]. **)
@@ -647,11 +657,12 @@ external set_section : string -> llvalue -> unit = "llvm_set_section"
(** [visibility g] returns the linker visibility of the global value [g].
See the method [llvm::GlobalValue::getVisibility]. **)
-external visibility : llvalue -> visibility = "llvm_visibility"
+external visibility : llvalue -> Visibility.t = "llvm_visibility"
(** [set_visibility v g] sets the linker visibility of the global value [g] to
[v]. See the method [llvm::GlobalValue::setVisibility]. **)
-external set_visibility : visibility -> llvalue -> unit = "llvm_set_visibility"
+external set_visibility : Visibility.t -> llvalue -> unit
+ = "llvm_set_visibility"
(** [alignment g] returns the required alignment of the global value [g].
See the method [llvm::GlobalValue::getAlignment]. **)
@@ -1177,14 +1188,14 @@ external build_bitcast : llvalue -> lltype -> string -> llbuilder -> llvalue
[%name = icmp %pred %x, %y]
instruction at the position specified by the instruction builder [b].
See the method [llvm::LLVMBuilder::CreateICmp]. **)
-external build_icmp : int_predicate -> llvalue -> llvalue -> string ->
+external build_icmp : Icmp.t -> llvalue -> llvalue -> string ->
llbuilder -> llvalue = "llvm_build_icmp"
(** [build_fcmp pred x y name b] creates a
[%name = fcmp %pred %x, %y]
instruction at the position specified by the instruction builder [b].
See the method [llvm::LLVMBuilder::CreateFCmp]. **)
-external build_fcmp : real_predicate -> llvalue -> llvalue -> string ->
+external build_fcmp : Fcmp.t -> llvalue -> llvalue -> string ->
llbuilder -> llvalue = "llvm_build_fcmp"
(*--... Miscellaneous instructions .........................................--*)
diff --git a/bindings/ocaml/llvm/llvm_ocaml.c b/bindings/ocaml/llvm/llvm_ocaml.c
index 5cd9526f56..506b5294de 100644
--- a/bindings/ocaml/llvm/llvm_ocaml.c
+++ b/bindings/ocaml/llvm/llvm_ocaml.c
@@ -77,7 +77,7 @@ CAMLprim value llvm_delete_type_name(value Name, LLVMModuleRef M) {
/*===-- Types -------------------------------------------------------------===*/
-/* lltype -> type_kind */
+/* lltype -> TypeKind.t */
CAMLprim value llvm_classify_type(LLVMTypeRef Ty) {
return Val_int(LLVMGetTypeKind(Ty));
}
@@ -361,14 +361,14 @@ CAMLprim LLVMValueRef llvm_const_vector(value ElementVals) {
/*--... Constant expressions ...............................................--*/
-/* int_predicate -> llvalue -> llvalue -> llvalue */
+/* Icmp.t -> llvalue -> llvalue -> llvalue */
CAMLprim LLVMValueRef llvm_const_icmp(value Pred,
LLVMValueRef LHSConstant,
LLVMValueRef RHSConstant) {
return LLVMConstICmp(Int_val(Pred) + LLVMIntEQ, LHSConstant, RHSConstant);
}
-/* real_predicate -> llvalue -> llvalue -> llvalue */
+/* Fcmp.t -> llvalue -> llvalue -> llvalue */
CAMLprim LLVMValueRef llvm_const_fcmp(value Pred,
LLVMValueRef LHSConstant,
LLVMValueRef RHSConstant) {
@@ -388,12 +388,12 @@ CAMLprim value llvm_is_declaration(LLVMValueRef Global) {
return Val_bool(LLVMIsDeclaration(Global));
}
-/* llvalue -> linkage */
+/* llvalue -> Linkage.t */
CAMLprim value llvm_linkage(LLVMValueRef Global) {
return Val_int(LLVMGetLinkage(Global));
}
-/* linkage -> llvalue -> unit */
+/* Linkage.t -> llvalue -> unit */
CAMLprim value llvm_set_linkage(value Linkage, LLVMValueRef Global) {
LLVMSetLinkage(Global, Int_val(Linkage));
return Val_unit;
@@ -410,12 +410,12 @@ CAMLprim value llvm_set_section(value Section, LLVMValueRef Global) {
return Val_unit;
}
-/* llvalue -> visibility */
+/* llvalue -> Visibility.t */
CAMLprim value llvm_visibility(LLVMValueRef Global) {
return Val_int(LLVMGetVisibility(Global));
}
-/* visibility -> llvalue -> unit */
+/* Visibility.t -> llvalue -> unit */
CAMLprim value llvm_set_visibility(value Viz, LLVMValueRef Global) {
LLVMSetVisibility(Global, Int_val(Viz));
return Val_unit;
@@ -1006,7 +1006,7 @@ CAMLprim LLVMValueRef llvm_build_bitcast(LLVMValueRef X, LLVMTypeRef Ty,
/*--... Comparisons ........................................................--*/
-/* int_predicate -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
+/* Icmp.t -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
CAMLprim LLVMValueRef llvm_build_icmp(value Pred,
LLVMValueRef LHS, LLVMValueRef RHS,
value Name, value B) {
@@ -1014,7 +1014,7 @@ CAMLprim LLVMValueRef llvm_build_icmp(value Pred,
String_val(Name));
}
-/* real_predicate -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
+/* Fcmp.t -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
CAMLprim LLVMValueRef llvm_build_fcmp(value Pred,
LLVMValueRef LHS, LLVMValueRef RHS,
value Name, value B) {
diff --git a/test/Bindings/Ocaml/vmcore.ml b/test/Bindings/Ocaml/vmcore.ml
index 04b80868c4..c0afd7e518 100644
--- a/test/Bindings/Ocaml/vmcore.ml
+++ b/test/Bindings/Ocaml/vmcore.ml
@@ -21,10 +21,7 @@ let group name =
let insist cond =
incr case_num;
- let msg = if cond then " pass " else begin
- exit_status := 10;
- " FAIL "
- end in
+ if not cond then exit_status := 10;
prerr_endline (" " ^ (string_of_int !case_num) ^ if cond then ""
else " FAIL")
@@ -46,13 +43,13 @@ let test_types () =
*)
group "void";
insist (define_type_name "Ty01" void_type m);
- insist (Void_type == classify_type void_type);
+ insist (TypeKind.Void == classify_type void_type);
(* RUN: grep {Ty02.*i1} < %t.ll
*)
group "i1";
insist (define_type_name "Ty02" i1_type m);
- insist (Integer_type == classify_type i1_type);
+ insist (TypeKind.Integer == classify_type i1_type);
(* RUN: grep {Ty03.*i32} < %t.ll
*)
@@ -69,20 +66,20 @@ let test_types () =
*)
group "float";
insist (define_type_name "Ty05" float_type m);
- insist (Float_type == classify_type float_type);
+ insist (TypeKind.Float == classify_type float_type);
(* RUN: grep {Ty06.*double} < %t.ll
*)
group "double";
insist (define_type_name "Ty06" double_type m);
- insist (Double_type == classify_type double_type);
+ insist (TypeKind.Double == classify_type double_type);
(* RUN: grep {Ty07.*i32.*i1, double} < %t.ll
*)
group "function";
let ty = function_type i32_type [| i1_type; double_type |] in
insist (define_type_name "Ty07" ty m);
- insist (Function_type = classify_type ty);
+ insist (TypeKind.Function = classify_type ty);
insist (not (is_var_arg ty));
insist (i32_type == return_type ty);
insist (double_type == (param_types ty).(1));
@@ -101,7 +98,7 @@ let test_types () =
insist (define_type_name "Ty09" ty m);
insist (7 = array_length ty);
insist (i8_type == element_type ty);
- insist (Array_type == classify_type ty);
+ insist (TypeKind.Array == classify_type ty);
begin group "pointer";
(* RUN: grep {UnqualPtrTy.*float\*} < %t.ll
@@ -110,7 +107,7 @@ let test_types () =
insist (define_type_name "UnqualPtrTy" ty m);
insist (float_type == element_type ty);
insist (0 == address_space ty);
- insist (Pointer_type == classify_type ty)
+ insist (TypeKind.Pointer == classify_type ty)
end;
begin group "qualified_pointer";
@@ -289,8 +286,8 @@ let test_constants () =
ignore (define_global "ConstAnd" (const_and foldbomb five) m);
ignore (define_global "ConstOr" (const_or foldbomb five) m);
ignore (define_global "ConstXor" (const_xor foldbomb five) m);
- ignore (define_global "ConstICmp" (const_icmp Icmp_sle foldbomb five) m);
- ignore (define_global "ConstFCmp" (const_fcmp Fcmp_ole ffoldbomb ffive) m);
+ ignore (define_global "ConstICmp" (const_icmp Icmp.Sle foldbomb five) m);
+ ignore (define_global "ConstFCmp" (const_fcmp Fcmp.Ole ffoldbomb ffive) m);
group "constant casts";
(* RUN: grep {ConstTrunc.*trunc} < %t.ll
@@ -336,7 +333,7 @@ let test_constants () =
ignore (define_global "ConstSizeOf" (size_of (pointer_type i8_type)) m);
ignore (define_global "ConstGEP" (const_gep foldbomb_gv [| five |]) m);
ignore (define_global "ConstSelect" (const_select
- (const_icmp Icmp_sle foldbomb five)
+ (const_icmp Icmp.Sle foldbomb five)
(const_int i8_type (-1))
(const_int i8_type 0)) m);
let zero = const_int i32_type 0 in
@@ -371,8 +368,8 @@ let test_global_values () =
*)
group "linkage";
let g = define_global "GVal02" zero32 m ++
- set_linkage Link_once_linkage in
- insist (Link_once_linkage = linkage g);
+ set_linkage Linkage.Link_once in
+ insist (Linkage.Link_once = linkage g);
(* RUN: grep {GVal03.*Hanalei} < %t.ll
*)
@@ -385,8 +382,8 @@ let test_global_values () =
*)
group "visibility";
let g = define_global "GVal04" zero32 m ++
- set_visibility Hidden_visibility in
- insist (Hidden_visibility = visibility g);
+ set_visibility Visibility.Hidden in
+ insist (Visibility.Hidden = visibility g);
(* RUN: grep {GVal05.*align 128} < %t.ll
*)
@@ -745,10 +742,10 @@ let test_builder () =
* RUN: grep {Inst42.*fcmp.*false.*F1.*F2} < %t.ll
* RUN: grep {Inst43.*fcmp.*true.*F2.*F1} < %t.ll
*)
- ignore (build_icmp Icmp_ne p1 p2 "Inst40" atentry);
- ignore (build_icmp Icmp_sle p2 p1 "Inst41" atentry);
- ignore (build_fcmp Fcmp_false f1 f2 "Inst42" atentry);
- ignore (build_fcmp Fcmp_true f2 f1 "Inst43" atentry)
+ ignore (build_icmp Icmp.Ne p1 p2 "Inst40" atentry);
+ ignore (build_icmp Icmp.Sle p2 p1 "Inst41" atentry);
+ ignore (build_fcmp Fcmp.False f1 f2 "Inst42" atentry);
+ ignore (build_fcmp Fcmp.True f2 f1 "Inst43" atentry)
end;
group "miscellaneous"; begin
@@ -760,7 +757,7 @@ let test_builder () =
* RUN: grep {Inst51.*shufflevector.*Vec1.*Vec2.*1.*1.*0.*0} < %t.ll
*)
ignore (build_call fn [| p2; p1 |] "Inst45" atentry);
- let inst46 = build_icmp Icmp_eq p1 p2 "Inst46" atentry in
+ let inst46 = build_icmp Icmp.Eq p1 p2 "Inst46" atentry in
ignore (build_select inst46 p1 p2 "Inst47" atentry);
ignore (build_va_arg
(const_null (pointer_type (pointer_type i8_type)))