Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/bindings/ocaml/transforms/utils/transform_utils_ocaml.c
Show All 9 Lines | |||||
|* This file glues LLVM's OCaml interface to its C interface. These functions *| | |* This file glues LLVM's OCaml interface to its C interface. These functions *| | ||||
|* are by and large transparent wrappers to the corresponding C functions. *| | |* are by and large transparent wrappers to the corresponding C functions. *| | ||||
|* *| | |* *| | ||||
|* Note that these functions intentionally take liberties with the CAMLparamX *| | |* Note that these functions intentionally take liberties with the CAMLparamX *| | ||||
|* macros, since most of the parameters are not GC heap objects. *| | |* macros, since most of the parameters are not GC heap objects. *| | ||||
|* *| | |* *| | ||||
\*===----------------------------------------------------------------------===*/ | \*===----------------------------------------------------------------------===*/ | ||||
#include "llvm-c/Core.h" | #include "caml/memory.h" | ||||
#include "caml/mlvalues.h" | |||||
#include "caml/misc.h" | #include "caml/misc.h" | ||||
#include "caml/mlvalues.h" | |||||
#include "llvm_ocaml.h" | |||||
#include "llvm-c/Core.h" | |||||
/* | /* | ||||
* Do not move directly into external. This function is here to pull in | * Do not move directly into external. This function is here to pull in | ||||
* -lLLVMTransformUtils, which would otherwise be not linked on static builds, | * -lLLVMTransformUtils, which would otherwise be not linked on static builds, | ||||
* as ld can't see the reference from OCaml code. | * as ld can't see the reference from OCaml code. | ||||
*/ | */ | ||||
/* llmodule -> llmodule */ | /* llmodule -> llmodule */ | ||||
LLVMModuleRef llvm_clone_module(LLVMModuleRef M) { return LLVMCloneModule(M); } | value llvm_clone_module(value M) { | ||||
CAMLparam1(M); | |||||
CAMLreturn(to_val(LLVMCloneModule(Module_val(M)))); | |||||
} |