summaryrefslogtreecommitdiffstats
path: root/llvm/bindings/ocaml/all_backends/all_backends_ocaml.c
diff options
context:
space:
mode:
authorPeter Zotov <whitequark@whitequark.org>2014-05-01 21:00:52 +0000
committerPeter Zotov <whitequark@whitequark.org>2014-05-01 21:00:52 +0000
commitbf8a9ac768ec0bcf72a5e425954ad033e10a45eb (patch)
tree663cce861f5033d75e9cff03eb08b778799c33cd /llvm/bindings/ocaml/all_backends/all_backends_ocaml.c
parentde9527c23291ebcc3b6067241e6e18aa568333ca (diff)
downloadbcm5719-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.c32
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;
+}
OpenPOWER on IntegriCloud