[ARM] Split large truncating MVE stores
[llvm-complete.git] / bindings / ocaml / transforms / scalar_opts / llvm_scalar_opts.mli
blob76d86ddf00147d95dd635d2fd21cd1999c6e48bc
1 (*===-- llvm_scalar_opts.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 (** Scalar Transforms.
11 This interface provides an OCaml API for LLVM scalar transforms, the
12 classes in the [LLVMScalarOpts] library. *)
14 (** See the [llvm::createAggressiveDCEPass] function. *)
15 external add_aggressive_dce
16 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
17 = "llvm_add_aggressive_dce"
19 (** See the [llvm::createAlignmentFromAssumptionsPass] function. *)
20 external add_alignment_from_assumptions
21 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
22 = "llvm_add_alignment_from_assumptions"
24 (** See the [llvm::createCFGSimplificationPass] function. *)
25 external add_cfg_simplification
26 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
27 = "llvm_add_cfg_simplification"
29 (** See [llvm::createDeadStoreEliminationPass] function. *)
30 external add_dead_store_elimination
31 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
32 = "llvm_add_dead_store_elimination"
34 (** See [llvm::createScalarizerPass] function. *)
35 external add_scalarizer
36 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
37 = "llvm_add_scalarizer"
39 (** See [llvm::createMergedLoadStoreMotionPass] function. *)
40 external add_merged_load_store_motion
41 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
42 = "llvm_add_merged_load_store_motion"
44 (** See the [llvm::createGVNPass] function. *)
45 external add_gvn
46 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
47 = "llvm_add_gvn"
49 (** See the [llvm::createIndVarSimplifyPass] function. *)
50 external add_ind_var_simplification
51 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
52 = "llvm_add_ind_var_simplify"
54 (** See the [llvm::createInstructionCombiningPass] function. *)
55 external add_instruction_combination
56 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
57 = "llvm_add_instruction_combining"
59 (** See the [llvm::createJumpThreadingPass] function. *)
60 external add_jump_threading
61 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
62 = "llvm_add_jump_threading"
64 (** See the [llvm::createLICMPass] function. *)
65 external add_licm
66 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
67 = "llvm_add_licm"
69 (** See the [llvm::createLoopDeletionPass] function. *)
70 external add_loop_deletion
71 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
72 = "llvm_add_loop_deletion"
74 (** See the [llvm::createLoopIdiomPass] function. *)
75 external add_loop_idiom
76 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
77 = "llvm_add_loop_idiom"
79 (** See the [llvm::createLoopRotatePass] function. *)
80 external add_loop_rotation
81 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
82 = "llvm_add_loop_rotate"
84 (** See the [llvm::createLoopRerollPass] function. *)
85 external add_loop_reroll
86 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
87 = "llvm_add_loop_reroll"
89 (** See the [llvm::createLoopUnrollPass] function. *)
90 external add_loop_unroll
91 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
92 = "llvm_add_loop_unroll"
94 (** See the [llvm::createLoopUnswitchPass] function. *)
95 external add_loop_unswitch
96 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
97 = "llvm_add_loop_unswitch"
99 (** See the [llvm::createMemCpyOptPass] function. *)
100 external add_memcpy_opt
101 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
102 = "llvm_add_memcpy_opt"
104 (** See the [llvm::createPartiallyInlineLibCallsPass] function. *)
105 external add_partially_inline_lib_calls
106 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
107 = "llvm_add_partially_inline_lib_calls"
109 (** See the [llvm::createLowerAtomicPass] function. *)
110 external add_lower_atomic
111 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
112 = "llvm_add_lower_atomic"
114 (** See the [llvm::createLowerSwitchPass] function. *)
115 external add_lower_switch
116 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
117 = "llvm_add_lower_switch"
119 (** See the [llvm::createPromoteMemoryToRegisterPass] function. *)
120 external add_memory_to_register_promotion
121 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
122 = "llvm_add_promote_memory_to_register"
124 (** See the [llvm::createReassociatePass] function. *)
125 external add_reassociation
126 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
127 = "llvm_add_reassociation"
129 (** See the [llvm::createSCCPPass] function. *)
130 external add_sccp
131 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
132 = "llvm_add_sccp"
134 (** See the [llvm::createSROAPass] function. *)
135 external add_scalar_repl_aggregation
136 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
137 = "llvm_add_scalar_repl_aggregates"
139 (** See the [llvm::createSROAPass] function. *)
140 external add_scalar_repl_aggregation_ssa
141 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
142 = "llvm_add_scalar_repl_aggregates_ssa"
144 (** See the [llvm::createSROAPass] function. *)
145 external add_scalar_repl_aggregation_with_threshold
146 : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
147 = "llvm_add_scalar_repl_aggregates_with_threshold"
149 (** See the [llvm::createSimplifyLibCallsPass] function. *)
150 external add_lib_call_simplification
151 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
152 = "llvm_add_simplify_lib_calls"
154 (** See the [llvm::createTailCallEliminationPass] function. *)
155 external add_tail_call_elimination
156 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
157 = "llvm_add_tail_call_elimination"
159 (** See the [llvm::createConstantPropagationPass] function. *)
160 external add_constant_propagation
161 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
162 = "llvm_add_constant_propagation"
164 (** See the [llvm::createDemoteMemoryToRegisterPass] function. *)
165 external add_memory_to_register_demotion
166 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
167 = "llvm_add_demote_memory_to_register"
169 (** See the [llvm::createVerifierPass] function. *)
170 external add_verifier
171 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
172 = "llvm_add_verifier"
174 (** See the [llvm::createCorrelatedValuePropagationPass] function. *)
175 external add_correlated_value_propagation
176 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
177 = "llvm_add_correlated_value_propagation"
179 (** See the [llvm::createEarlyCSE] function. *)
180 external add_early_cse
181 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
182 = "llvm_add_early_cse"
184 (** See the [llvm::createLowerExpectIntrinsicPass] function. *)
185 external add_lower_expect_intrinsic
186 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
187 = "llvm_add_lower_expect_intrinsic"
189 (** See the [llvm::createTypeBasedAliasAnalysisPass] function. *)
190 external add_type_based_alias_analysis
191 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
192 = "llvm_add_type_based_alias_analysis"
194 (** See the [llvm::createScopedNoAliasAAPass] function. *)
195 external add_scoped_no_alias_alias_analysis
196 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
197 = "llvm_add_scoped_no_alias_aa"
199 (** See the [llvm::createBasicAliasAnalysisPass] function. *)
200 external add_basic_alias_analysis
201 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
202 = "llvm_add_basic_alias_analysis"
204 (** See the [llvm::createUnifyFunctionExitNodesPass] function. *)
205 external add_unify_function_exit_nodes
206 : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
207 = "llvm_add_unify_function_exit_nodes"