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 *===----------------------------------------------------------------------===*)
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"