mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
[OCaml] Implement Llvm.string_of_llvalue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194136 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
14bbb1d9b0
commit
ba0c7cd012
@ -382,6 +382,7 @@ external type_of : llvalue -> lltype = "llvm_type_of"
|
||||
external value_name : llvalue -> string = "llvm_value_name"
|
||||
external set_value_name : string -> llvalue -> unit = "llvm_set_value_name"
|
||||
external dump_value : llvalue -> unit = "llvm_dump_value"
|
||||
external string_of_llvalue : llvalue -> string = "llvm_string_of_llvalue"
|
||||
external replace_all_uses_with : llvalue -> llvalue -> unit
|
||||
= "llvm_replace_all_uses_with"
|
||||
|
||||
|
@ -654,6 +654,9 @@ val set_value_name : string -> llvalue -> unit
|
||||
error. See the method [llvm::Value::dump]. *)
|
||||
val dump_value : llvalue -> unit
|
||||
|
||||
(** [string_of_llvalue v] returns a string describing the value [v]. *)
|
||||
val string_of_llvalue : llvalue -> string
|
||||
|
||||
(** [replace_all_uses_with old new] replaces all uses of the value [old]
|
||||
with the value [new]. See the method [llvm::Value::replaceAllUsesWith]. *)
|
||||
val replace_all_uses_with : llvalue -> llvalue -> unit
|
||||
|
@ -527,6 +527,17 @@ CAMLprim value llvm_dump_value(LLVMValueRef Val) {
|
||||
return Val_unit;
|
||||
}
|
||||
|
||||
/* llvalue -> string */
|
||||
CAMLprim value llvm_string_of_llvalue(LLVMTypeRef M) {
|
||||
char* TypeCStr;
|
||||
TypeCStr = LLVMPrintValueToString(M);
|
||||
|
||||
value TypeStr = caml_copy_string(TypeCStr);
|
||||
LLVMDisposeMessage(TypeCStr);
|
||||
|
||||
return TypeStr;
|
||||
}
|
||||
|
||||
/* llvalue -> llvalue -> unit */
|
||||
CAMLprim value llvm_replace_all_uses_with(LLVMValueRef OldVal,
|
||||
LLVMValueRef NewVal) {
|
||||
|
@ -67,6 +67,14 @@ let filename = Sys.argv.(1)
|
||||
let m = create_module context filename
|
||||
|
||||
|
||||
(*===-- Conversion --------------------------------------------------------===*)
|
||||
|
||||
let test_conversion () =
|
||||
insist ("i32" = (string_of_lltype i32_type));
|
||||
let c = const_int i32_type 42 in
|
||||
insist ("i32 42" = (string_of_llvalue c))
|
||||
|
||||
|
||||
(*===-- Target ------------------------------------------------------------===*)
|
||||
|
||||
let test_target () =
|
||||
@ -1392,6 +1400,7 @@ let test_writer () =
|
||||
(*===-- Driver ------------------------------------------------------------===*)
|
||||
|
||||
let _ =
|
||||
suite "conversion" test_conversion;
|
||||
suite "target" test_target;
|
||||
suite "constants" test_constants;
|
||||
suite "global values" test_global_values;
|
||||
|
Loading…
Reference in New Issue
Block a user