[Types] Define a getWithNewBitWidth for Types and make use of it
[llvm-complete.git] / bindings / ocaml / transforms / passmgr_builder / llvm_passmgr_builder.ml
blobf143eaf26eb02aec6ee507ce94d0db6f958a41b5
1 (*===-- llvm_passmgr_builder.ml - LLVM OCaml Interface --------*- OCaml -*-===*
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 *===----------------------------------------------------------------------===*)
9 type t
11 external create : unit -> t
12 = "llvm_pmbuilder_create"
13 external set_opt_level : int -> t -> unit
14 = "llvm_pmbuilder_set_opt_level"
15 external set_size_level : int -> t -> unit
16 = "llvm_pmbuilder_set_size_level"
17 external set_disable_unit_at_a_time : bool -> t -> unit
18 = "llvm_pmbuilder_set_disable_unit_at_a_time"
19 external set_disable_unroll_loops : bool -> t -> unit
20 = "llvm_pmbuilder_set_disable_unroll_loops"
21 external use_inliner_with_threshold : int -> t -> unit
22 = "llvm_pmbuilder_use_inliner_with_threshold"
23 external populate_function_pass_manager
24 : [ `Function ] Llvm.PassManager.t -> t -> unit
25 = "llvm_pmbuilder_populate_function_pass_manager"
26 external populate_module_pass_manager
27 : [ `Module ] Llvm.PassManager.t -> t -> unit
28 = "llvm_pmbuilder_populate_module_pass_manager"
29 external populate_lto_pass_manager
30 : [ `Module ] Llvm.PassManager.t -> internalize:bool -> run_inliner:bool -> t -> unit
31 = "llvm_pmbuilder_populate_lto_pass_manager"