diff options
author | Peter Zotov <whitequark@whitequark.org> | 2014-05-01 21:00:52 +0000 |
---|---|---|
committer | Peter Zotov <whitequark@whitequark.org> | 2014-05-01 21:00:52 +0000 |
commit | bf8a9ac768ec0bcf72a5e425954ad033e10a45eb (patch) | |
tree | 663cce861f5033d75e9cff03eb08b778799c33cd /llvm/bindings/ocaml/all_backends/all_backends_ocaml.c | |
parent | de9527c23291ebcc3b6067241e6e18aa568333ca (diff) | |
download | bcm5719-llvm-bf8a9ac768ec0bcf72a5e425954ad033e10a45eb.tar.gz bcm5719-llvm-bf8a9ac768ec0bcf72a5e425954ad033e10a45eb.zip |
[OCaml] Add an ocamlfind package llvm.all_backends.
This package is useful for architecture-independent tools like llc.
Patch by Jacques-Pascal Deplaix.
llvm-svn: 207793
Diffstat (limited to 'llvm/bindings/ocaml/all_backends/all_backends_ocaml.c')
-rw-r--r-- | llvm/bindings/ocaml/all_backends/all_backends_ocaml.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/bindings/ocaml/all_backends/all_backends_ocaml.c b/llvm/bindings/ocaml/all_backends/all_backends_ocaml.c new file mode 100644 index 00000000000..8fe7d9b5d59 --- /dev/null +++ b/llvm/bindings/ocaml/all_backends/all_backends_ocaml.c @@ -0,0 +1,32 @@ +/*===-- all_backends_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" +#include "caml/fail.h" +#include "caml/memory.h" +#include "caml/custom.h" + +/* unit -> unit */ +CAMLprim value llvm_initialize_all(value Unit) { + LLVMInitializeAllTargetInfos(); + LLVMInitializeAllTargets(); + LLVMInitializeAllTargetMCs(); + LLVMInitializeAllAsmPrinters(); + LLVMInitializeAllAsmParsers(); + return Val_unit; +} |