[llvm-objdump] - Import the test/Object/X86/no-start-symbol.test test case and rewrit...
[llvm-complete.git] / bindings / ocaml / transforms / ipo / llvm_ipo.mli
blob4ae988d8e579b1bba84658ad18edfd9985bb2d4c
1 (*===-- llvm_ipo.mli - 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 (** IPO Transforms.
11 This interface provides an OCaml API for LLVM interprocedural optimizations, the
12 classes in the [LLVMIPO] library. *)
14 (** See the [llvm::createAddArgumentPromotionPass] function. *)
15 external add_argument_promotion
16 : [ `Module ] Llvm.PassManager.t -> unit
17 = "llvm_add_argument_promotion"
19 (** See the [llvm::createConstantMergePass] function. *)
20 external add_constant_merge
21 : [ `Module ] Llvm.PassManager.t -> unit
22 = "llvm_add_constant_merge"
24 (** See the [llvm::createDeadArgEliminationPass] function. *)
25 external add_dead_arg_elimination
26 : [ `Module ] Llvm.PassManager.t -> unit
27 = "llvm_add_dead_arg_elimination"
29 (** See the [llvm::createFunctionAttrsPass] function. *)
30 external add_function_attrs
31 : [ `Module ] Llvm.PassManager.t -> unit
32 = "llvm_add_function_attrs"
34 (** See the [llvm::createFunctionInliningPass] function. *)
35 external add_function_inlining
36 : [ `Module ] Llvm.PassManager.t -> unit
37 = "llvm_add_function_inlining"
39 (** See the [llvm::createAlwaysInlinerPass] function. *)
40 external add_always_inliner
41 : [ `Module ] Llvm.PassManager.t -> unit
42 = "llvm_add_always_inliner"
44 (** See the [llvm::createGlobalDCEPass] function. *)
45 external add_global_dce
46 : [ `Module ] Llvm.PassManager.t -> unit
47 = "llvm_add_global_dce"
49 (** See the [llvm::createGlobalOptimizerPass] function. *)
50 external add_global_optimizer
51 : [ `Module ] Llvm.PassManager.t -> unit
52 = "llvm_add_global_optimizer"
54 (** See the [llvm::createIPConstantPropagationPass] function. *)
55 external add_ipc_propagation
56 : [ `Module ] Llvm.PassManager.t -> unit
57 = "llvm_add_ip_constant_propagation"
59 (** See the [llvm::createPruneEHPass] function. *)
60 external add_prune_eh
61 : [ `Module ] Llvm.PassManager.t -> unit
62 = "llvm_add_prune_eh"
64 (** See the [llvm::createIPSCCPPass] function. *)
65 external add_ipsccp
66 : [ `Module ] Llvm.PassManager.t -> unit
67 = "llvm_add_ipsccp"
69 (** See the [llvm::createInternalizePass] function. *)
70 external add_internalize
71 : [ `Module ] Llvm.PassManager.t -> all_but_main:bool -> unit
72 = "llvm_add_internalize"
74 (** See the [llvm::createStripDeadPrototypesPass] function. *)
75 external add_strip_dead_prototypes
76 : [ `Module ] Llvm.PassManager.t -> unit
77 = "llvm_add_strip_dead_prototypes"
79 (** See the [llvm::createStripSymbolsPass] function. *)
80 external add_strip_symbols
81 : [ `Module ] Llvm.PassManager.t -> unit
82 = "llvm_add_strip_symbols"