[LLVMdev] ocaml survey

Erick Tryzelaar idadesub at users.sourceforge.net
Thu Feb 18 12:51:40 PST 2010


I'm in the process of finishing up the ocaml llvm bindings, and I had
some last minute questions before we code freeze:

1. What version of ocaml is everyone using, and how old of an ocaml
version do you need to support?

2. Would it be alright if I renamed some functions? Module providers
are being removed for 2.7. I can keep the old functions around, but
I'd prefer to keep the API clean.

3. Are there any llvm functionality that you need exposed to ocaml?
Right now I plan to expose:

add Union to TypeKind.t
external union_type: llcontext -> lltype array  -> lltype
external union_element_types : lltype -> lltype array

external build_indirect_br : llvalue -> int -> llbuilder -> llvalue
external add_destination: llvalue -> llbasicblock -> unit

external build_nsw_add : llvalue -> llvalue -> string -> llbuilder -> llvalue
external build_nuw_add : llvalue -> llvalue -> string -> llbuilder -> llvalue
external build_nsw_sub : llvalue -> llvalue -> string -> llbuilder -> llvalue
external build_nuw_sub : llvalue -> llvalue -> string -> llbuilder -> llvalue
external build_nsw_mul : llvalue -> llvalue -> string -> llbuilder -> llvalue
external build_nuw_mul : llvalue -> llvalue -> string -> llbuilder -> llvalue
external build_nsw_neg : llvalue -> string -> llbuilder -> llvalue
external build_nuw_neg : llvalue -> string -> llbuilder -> llvalue
external build_fneg : llvalue -> string -> llbuilder -> llvalue

And I'm working on exposing metadata as well, but I'm not sure of the api yet.

4. Right now, there's a function "element_types" that return a
structure's subtypes. Anyone mind if I rename it to
"struct_element_types" so that the union and struct function are
similar?


Thanks all!

-e



More information about the llvm-dev mailing list