package llvm
The OCaml bindings distributed with LLVM
Install
Dune Dependency
Authors
Maintainers
Sources
llvm-dune-full-minified-16.0.6.tar.gz
md5=d2bf13c08c943c69f1a29ec5b830c143
sha512=6abc12221eeea6bb26f457dee5f8a077d945583a48891bef7249e6129b8125a5151b92dec0cefc09b124fe988cea8c521123c95d74dd4cd9d87a282c17865fe2
doc/src/llvm_executionengine_static/llvm_executionengine.ml.html
Source file llvm_executionengine.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
(*===-- llvm_executionengine.ml - LLVM OCaml Interface --------*- OCaml -*-===* * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===----------------------------------------------------------------------===*) exception Error of string let () = Callback.register_exception "Llvm_executionengine.Error" (Error "") external initialize : unit -> bool = "llvm_ee_initialize" type llexecutionengine type llcompileroptions = { opt_level: int; code_model: Llvm_target.CodeModel.t; no_framepointer_elim: bool; enable_fast_isel: bool; } let default_compiler_options = { opt_level = 0; code_model = Llvm_target.CodeModel.JITDefault; no_framepointer_elim = false; enable_fast_isel = false } external create : ?options:llcompileroptions -> Llvm.llmodule -> llexecutionengine = "llvm_ee_create" external dispose : llexecutionengine -> unit = "llvm_ee_dispose" external add_module : Llvm.llmodule -> llexecutionengine -> unit = "llvm_ee_add_module" external remove_module : Llvm.llmodule -> llexecutionengine -> unit = "llvm_ee_remove_module" external run_static_ctors : llexecutionengine -> unit = "llvm_ee_run_static_ctors" external run_static_dtors : llexecutionengine -> unit = "llvm_ee_run_static_dtors" external data_layout : llexecutionengine -> Llvm_target.DataLayout.t = "llvm_ee_get_data_layout" external add_global_mapping_ : Llvm.llvalue -> nativeint -> llexecutionengine -> unit = "llvm_ee_add_global_mapping" external get_global_value_address_ : string -> llexecutionengine -> nativeint = "llvm_ee_get_global_value_address" external get_function_address_ : string -> llexecutionengine -> nativeint = "llvm_ee_get_function_address" let add_global_mapping llval ptr ee = add_global_mapping_ llval (Ctypes.raw_address_of_ptr (Ctypes.to_voidp ptr)) ee let get_global_value_address name typ ee = let vptr = get_global_value_address_ name ee in if Nativeint.to_int vptr <> 0 then let open Ctypes in !@ (coerce (ptr void) (ptr typ) (ptr_of_raw_address vptr)) else raise (Error ("Value " ^ name ^ " not found")) let get_function_address name typ ee = let fptr = get_function_address_ name ee in if Nativeint.to_int fptr <> 0 then let open Ctypes in coerce (ptr void) typ (ptr_of_raw_address fptr) else raise (Error ("Function " ^ name ^ " not found")) (* The following are not bound. Patches are welcome. target_machine : llexecutionengine -> Llvm_target.TargetMachine.t *)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>