diff options
Diffstat (limited to 'bindings/ocaml/all_backends/all_backends_ocaml.c')
-rw-r--r-- | bindings/ocaml/all_backends/all_backends_ocaml.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/bindings/ocaml/all_backends/all_backends_ocaml.c b/bindings/ocaml/all_backends/all_backends_ocaml.c new file mode 100644 index 0000000000..8fe7d9b5d5 --- /dev/null +++ b/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; +} |