diff options
| author | Peter Zotov <whitequark@whitequark.org> | 2014-10-29 08:15:21 +0000 |
|---|---|---|
| committer | Peter Zotov <whitequark@whitequark.org> | 2014-10-29 08:15:21 +0000 |
| commit | e447b61c5036a7d0e3ff680ed46a9dfab33c431a (patch) | |
| tree | 57de8a9881becfd7de47986858490b14a1c99c87 /llvm/bindings/ocaml/transforms/scalar | |
| parent | 44d4d9a4cb1b590f81b5bf08b922e1ec2715e90e (diff) | |
| download | bcm5719-llvm-e447b61c5036a7d0e3ff680ed46a9dfab33c431a.tar.gz bcm5719-llvm-e447b61c5036a7d0e3ff680ed46a9dfab33c431a.zip | |
[OCaml] Synchronize transformations with LLVM-C.
Also, rearrange the functions in a way that allows to quickly
compare C headers and .mli/glue files.
llvm-svn: 220842
Diffstat (limited to 'llvm/bindings/ocaml/transforms/scalar')
3 files changed, 337 insertions, 271 deletions
diff --git a/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml b/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml index 3035b103f13..b90d0aecd2a 100644 --- a/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml +++ b/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml @@ -1,4 +1,4 @@ -(*===-- llvm_scalar_opts.ml - LLVM OCaml Interface -------------*- OCaml -*-===* +(*===-- llvm_scalar_opts.ml - LLVM OCaml Interface ------------*- OCaml -*-===* * * The LLVM Compiler Infrastructure * @@ -7,108 +7,114 @@ * *===----------------------------------------------------------------------===*) -external add_constant_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_constant_propagation" -external add_sccp : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_sccp" -external add_dead_store_elimination : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_dead_store_elimination" -external add_aggressive_dce : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_aggressive_dce" -external -add_scalar_repl_aggregation : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_scalar_repl_aggregation" - -external -add_scalar_repl_aggregation_ssa : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_scalar_repl_aggregation_ssa" - -external -add_scalar_repl_aggregation_with_threshold : int -> [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_scalar_repl_aggregation_with_threshold" -external add_ind_var_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_ind_var_simplification" -external -add_instruction_combination : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_instruction_combination" -external add_licm : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_licm" -external add_loop_unswitch : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_unswitch" -external add_loop_unroll : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_unroll" -external add_loop_rotation : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_rotation" -external -add_memory_to_register_promotion : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_memory_to_register_promotion" -external -add_memory_to_register_demotion : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_memory_to_register_demotion" -external add_reassociation : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_reassociation" -external add_jump_threading : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_jump_threading" -external add_cfg_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_cfg_simplification" -external -add_tail_call_elimination : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_tail_call_elimination" -external add_gvn : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_gvn" -external add_memcpy_opt : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_memcpy_opt" -external add_loop_deletion : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_deletion" - -external add_loop_idiom : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_idiom" - -external -add_lib_call_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_lib_call_simplification" - -external -add_verifier : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_verifier" - -external -add_correlated_value_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_correlated_value_propagation" - -external -add_early_cse : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_early_cse" - -external -add_lower_expect_intrinsic : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_lower_expect_intrinsic" - -external -add_type_based_alias_analysis : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_type_based_alias_analysis" - -external -add_basic_alias_analysis : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_basic_alias_analysis" - -external -add_partially_inline_lib_calls : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_partially_inline_lib_calls" +external add_aggressive_dce + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_aggressive_dce" +external add_alignment_from_assumptions + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_alignment_from_assumptions" +external add_cfg_simplification + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_cfg_simplification" +external add_dead_store_elimination + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_dead_store_elimination" +external add_scalarizer + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalarizer" +external add_merged_load_store_motion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_merged_load_store_motion" +external add_gvn + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_gvn" +external add_ind_var_simplification + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_ind_var_simplify" +external add_instruction_combination + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_instruction_combining" +external add_jump_threading + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_jump_threading" +external add_licm + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_licm" +external add_loop_deletion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_deletion" +external add_loop_idiom + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_idiom" +external add_loop_rotation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_rotate" +external add_loop_reroll + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_reroll" +external add_loop_unroll + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_unroll" +external add_loop_unswitch + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_unswitch" +external add_memcpy_opt + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_memcpy_opt" +external add_partially_inline_lib_calls + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_partially_inline_lib_calls" +external add_lower_switch + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_lower_switch" +external add_memory_to_register_promotion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_promote_memory_to_register" +external add_reassociation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_reassociation" +external add_sccp + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_sccp" +external add_scalar_repl_aggregation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalar_repl_aggregates" +external add_scalar_repl_aggregation_ssa + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalar_repl_aggregates_ssa" +external add_scalar_repl_aggregation_with_threshold + : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalar_repl_aggregates_with_threshold" +external add_lib_call_simplification + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_simplify_lib_calls" +external add_tail_call_elimination + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_tail_call_elimination" +external add_constant_propagation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_constant_propagation" +external add_memory_to_register_demotion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_demote_memory_to_register" +external add_verifier + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_verifier" +external add_correlated_value_propagation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_correlated_value_propagation" +external add_early_cse + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_early_cse" +external add_lower_expect_intrinsic + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_lower_expect_intrinsic" +external add_type_based_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_type_based_alias_analysis" +external add_scoped_no_alias_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scoped_no_alias_aa" +external add_basic_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_basic_alias_analysis" diff --git a/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli b/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli index ca900d9cd68..b4cefed76d5 100644 --- a/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli +++ b/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli @@ -1,4 +1,4 @@ -(*===-- llvm_scalar_opts.mli - LLVM OCaml Interface ------------*- OCaml -*-===* +(*===-- llvm_scalar_opts.mli - LLVM OCaml Interface -----------*- OCaml -*-===* * * The LLVM Compiler Infrastructure * @@ -12,157 +12,187 @@ This interface provides an OCaml API for LLVM scalar transforms, the classes in the [LLVMScalarOpts] library. *) -(** See the [llvm::createConstantPropagationPass] function. *) -external add_constant_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_constant_propagation" +(** See the [llvm::createAggressiveDCEPass] function. *) +external add_aggressive_dce + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_aggressive_dce" -(** See the [llvm::createSCCPPass] function. *) -external add_sccp : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_sccp" +(** See the [llvm::createAlignmentFromAssumptionsPass] function. *) +external add_alignment_from_assumptions + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_alignment_from_assumptions" + +(** See the [llvm::createCFGSimplificationPass] function. *) +external add_cfg_simplification + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_cfg_simplification" (** See [llvm::createDeadStoreEliminationPass] function. *) -external add_dead_store_elimination : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_dead_store_elimination" +external add_dead_store_elimination + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_dead_store_elimination" -(** See The [llvm::createAggressiveDCEPass] function. *) -external add_aggressive_dce : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_aggressive_dce" +(** See [llvm::createScalarizerPass] function. *) +external add_scalarizer + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalarizer" -(** See the [llvm::createScalarReplAggregatesPass] function. *) -external -add_scalar_repl_aggregation : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_scalar_repl_aggregation" +(** See [llvm::createMergedLoadStoreMotionPass] function. *) +external add_merged_load_store_motion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_merged_load_store_motion" -(** See the [llvm::createScalarReplAggregatesPassSSA] function. *) -external -add_scalar_repl_aggregation_ssa : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_scalar_repl_aggregation_ssa" - -(** See the [llvm::createScalarReplAggregatesWithThreshold] function. *) -external -add_scalar_repl_aggregation_with_threshold : int -> [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_scalar_repl_aggregation_with_threshold" +(** See the [llvm::createGVNPass] function. *) +external add_gvn + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_gvn" (** See the [llvm::createIndVarSimplifyPass] function. *) -external add_ind_var_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_ind_var_simplification" +external add_ind_var_simplification + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_ind_var_simplify" (** See the [llvm::createInstructionCombiningPass] function. *) -external -add_instruction_combination : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_instruction_combination" +external add_instruction_combination + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_instruction_combining" + +(** See the [llvm::createJumpThreadingPass] function. *) +external add_jump_threading + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_jump_threading" (** See the [llvm::createLICMPass] function. *) -external add_licm : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_licm" +external add_licm + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_licm" -(** See the [llvm::createLoopUnswitchPass] function. *) -external add_loop_unswitch : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_unswitch" +(** See the [llvm::createLoopDeletionPass] function. *) +external add_loop_deletion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_deletion" -(** See the [llvm::createLoopUnrollPass] function. *) -external add_loop_unroll : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_unroll" +(** See the [llvm::createLoopIdiomPass] function. *) +external add_loop_idiom + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_idiom" (** See the [llvm::createLoopRotatePass] function. *) -external add_loop_rotation : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_rotation" +external add_loop_rotation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_rotate" -(** See the [llvm::createPromoteMemoryToRegisterPass] function. *) -external -add_memory_to_register_promotion : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_memory_to_register_promotion" +(** See the [llvm::createLoopRerollPass] function. *) +external add_loop_reroll + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_reroll" -(** See the [llvm::createDemoteMemoryToRegisterPass] function. *) -external -add_memory_to_register_demotion : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_memory_to_register_demotion" +(** See the [llvm::createLoopUnrollPass] function. *) +external add_loop_unroll + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_unroll" -(** See the [llvm::createReassociatePass] function. *) -external add_reassociation : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_reassociation" +(** See the [llvm::createLoopUnswitchPass] function. *) +external add_loop_unswitch + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_unswitch" -(** See the [llvm::createJumpThreadingPass] function. *) -external add_jump_threading : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_jump_threading" +(** See the [llvm::createMemCpyOptPass] function. *) +external add_memcpy_opt + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_memcpy_opt" -(** See the [llvm::createCFGSimplificationPass] function. *) -external add_cfg_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_cfg_simplification" +(** See the [llvm::createPartiallyInlineLibCallsPass] function. *) +external add_partially_inline_lib_calls + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_partially_inline_lib_calls" -(** See the [llvm::createTailCallEliminationPass] function. *) -external -add_tail_call_elimination : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_tail_call_elimination" +(** See the [llvm::createLowerSwitchPass] function. *) +external add_lower_switch + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_lower_switch" -(** See the [llvm::createGVNPass] function. *) -external add_gvn : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_gvn" +(** See the [llvm::createPromoteMemoryToRegisterPass] function. *) +external add_memory_to_register_promotion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_promote_memory_to_register" -(** See the [llvm::createMemCpyOptPass] function. *) -external add_memcpy_opt : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_memcpy_opt" +(** See the [llvm::createReassociatePass] function. *) +external add_reassociation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_reassociation" -(** See the [llvm::createLoopDeletionPass] function. *) -external add_loop_deletion : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_deletion" +(** See the [llvm::createSCCPPass] function. *) +external add_sccp + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_sccp" + +(** See the [llvm::createScalarReplAggregatesPass] function. *) +external add_scalar_repl_aggregation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalar_repl_aggregates" + +(** See the [llvm::createScalarReplAggregatesPassSSA] function. *) +external add_scalar_repl_aggregation_ssa + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalar_repl_aggregates_ssa" -external add_loop_idiom : [<Llvm.PassManager.any] Llvm.PassManager.t - -> unit - = "llvm_add_loop_idiom" +(** See the [llvm::createScalarReplAggregatesWithThreshold] function. *) +external add_scalar_repl_aggregation_with_threshold + : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalar_repl_aggregates_with_threshold" (** See the [llvm::createSimplifyLibCallsPass] function. *) -external -add_lib_call_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_lib_call_simplification" +external add_lib_call_simplification + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_simplify_lib_calls" + +(** See the [llvm::createTailCallEliminationPass] function. *) +external add_tail_call_elimination + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_tail_call_elimination" + +(** See the [llvm::createConstantPropagationPass] function. *) +external add_constant_propagation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_constant_propagation" + +(** See the [llvm::createDemoteMemoryToRegisterPass] function. *) +external add_memory_to_register_demotion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_demote_memory_to_register" (** See the [llvm::createVerifierPass] function. *) -external -add_verifier : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_verifier" +external add_verifier + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_verifier" (** See the [llvm::createCorrelatedValuePropagationPass] function. *) -external -add_correlated_value_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_correlated_value_propagation" +external add_correlated_value_propagation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_correlated_value_propagation" (** See the [llvm::createEarlyCSE] function. *) -external -add_early_cse : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_early_cse" +external add_early_cse + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_early_cse" (** See the [llvm::createLowerExpectIntrinsicPass] function. *) -external -add_lower_expect_intrinsic : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_lower_expect_intrinsic" +external add_lower_expect_intrinsic + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_lower_expect_intrinsic" (** See the [llvm::createTypeBasedAliasAnalysisPass] function. *) -external -add_type_based_alias_analysis : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_type_based_alias_analysis" +external add_type_based_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_type_based_alias_analysis" -(** See the [llvm::createBasicAliasAnalysisPass] function. *) -external -add_basic_alias_analysis : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_basic_alias_analysis" +(** See the [llvm::createScopedNoAliasAAPass] function. *) +external add_scoped_no_alias_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scoped_no_alias_aa" -(** See the [llvm::createPartiallyInlineLibCallsPass] function. *) -external -add_partially_inline_lib_calls : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit - = "llvm_add_partially_inline_lib_calls" +(** See the [llvm::createBasicAliasAnalysisPass] function. *) +external add_basic_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_basic_alias_analysis" diff --git a/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c b/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c index 47e17902baa..bae4e31710e 100644 --- a/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c +++ b/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c @@ -20,157 +20,187 @@ #include "caml/misc.h" /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_constant_propagation(LLVMPassManagerRef PM) { - LLVMAddConstantPropagationPass(PM); +CAMLprim value llvm_add_aggressive_dce(LLVMPassManagerRef PM) { + LLVMAddAggressiveDCEPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_sccp(LLVMPassManagerRef PM) { - LLVMAddSCCPPass(PM); +CAMLprim value llvm_add_alignment_from_assumptions(LLVMPassManagerRef PM) { + LLVMAddAlignmentFromAssumptionsPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_dead_store_elimination(LLVMPassManagerRef PM) { - LLVMAddDeadStoreEliminationPass(PM); +CAMLprim value llvm_add_cfg_simplification(LLVMPassManagerRef PM) { + LLVMAddCFGSimplificationPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_aggressive_dce(LLVMPassManagerRef PM) { - LLVMAddAggressiveDCEPass(PM); +CAMLprim value llvm_add_dead_store_elimination(LLVMPassManagerRef PM) { + LLVMAddDeadStoreEliminationPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_scalar_repl_aggregation(LLVMPassManagerRef PM) { - LLVMAddScalarReplAggregatesPass(PM); +CAMLprim value llvm_add_scalarizer(LLVMPassManagerRef PM) { + LLVMAddScalarizerPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_scalar_repl_aggregation_ssa(LLVMPassManagerRef PM) { - LLVMAddScalarReplAggregatesPassSSA(PM); +CAMLprim value llvm_add_merged_load_store_motion(LLVMPassManagerRef PM) { + LLVMAddMergedLoadStoreMotionPass(PM); return Val_unit; } -/* [<Llvm.PassManager.any] Llvm.PassManager.t -> int -> unit */ -CAMLprim value llvm_add_scalar_repl_aggregation_with_threshold(value threshold, - LLVMPassManagerRef PM) { - LLVMAddScalarReplAggregatesPassWithThreshold(PM, Int_val(threshold)); +/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +CAMLprim value llvm_add_gvn(LLVMPassManagerRef PM) { + LLVMAddGVNPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_ind_var_simplification(LLVMPassManagerRef PM) { +CAMLprim value llvm_add_ind_var_simplify(LLVMPassManagerRef PM) { LLVMAddIndVarSimplifyPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_instruction_combination(LLVMPassManagerRef PM) { +CAMLprim value llvm_add_instruction_combining(LLVMPassManagerRef PM) { LLVMAddInstructionCombiningPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +CAMLprim value llvm_add_jump_threading(LLVMPassManagerRef PM) { + LLVMAddJumpThreadingPass(PM); + return Val_unit; +} + +/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ CAMLprim value llvm_add_licm(LLVMPassManagerRef PM) { LLVMAddLICMPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_loop_unswitch(LLVMPassManagerRef PM) { - LLVMAddLoopUnswitchPass(PM); +CAMLprim value llvm_add_loop_deletion(LLVMPassManagerRef PM) { + LLVMAddLoopDeletionPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_loop_unroll(LLVMPassManagerRef PM) { - LLVMAddLoopUnrollPass(PM); +CAMLprim value llvm_add_loop_idiom(LLVMPassManagerRef PM) { + LLVMAddLoopIdiomPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_loop_rotation(LLVMPassManagerRef PM) { +CAMLprim value llvm_add_loop_rotate(LLVMPassManagerRef PM) { LLVMAddLoopRotatePass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_memory_to_register_promotion(LLVMPassManagerRef PM) { - LLVMAddPromoteMemoryToRegisterPass(PM); +CAMLprim value llvm_add_loop_reroll(LLVMPassManagerRef PM) { + LLVMAddLoopRerollPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_memory_to_register_demotion(LLVMPassManagerRef PM) { - LLVMAddDemoteMemoryToRegisterPass(PM); +CAMLprim value llvm_add_loop_unroll(LLVMPassManagerRef PM) { + LLVMAddLoopUnrollPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_reassociation(LLVMPassManagerRef PM) { - LLVMAddReassociatePass(PM); +CAMLprim value llvm_add_loop_unswitch(LLVMPassManagerRef PM) { + LLVMAddLoopUnswitchPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_jump_threading(LLVMPassManagerRef PM) { - LLVMAddJumpThreadingPass(PM); +CAMLprim value llvm_add_memcpy_opt(LLVMPassManagerRef PM) { + LLVMAddMemCpyOptPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_cfg_simplification(LLVMPassManagerRef PM) { - LLVMAddCFGSimplificationPass(PM); +CAMLprim value llvm_add_partially_inline_lib_calls(LLVMPassManagerRef PM) { + LLVMAddPartiallyInlineLibCallsPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_tail_call_elimination(LLVMPassManagerRef PM) { - LLVMAddTailCallEliminationPass(PM); +CAMLprim value llvm_add_lower_switch(LLVMPassManagerRef PM) { + LLVMAddLowerSwitchPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_merged_load_store_motion(LLVMPassManagerRef PM) { - LLVMAddMergedLoadStoreMotionPass(PM); +CAMLprim value llvm_add_promote_memory_to_register(LLVMPassManagerRef PM) { + LLVMAddPromoteMemoryToRegisterPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_gvn(LLVMPassManagerRef PM) { - LLVMAddGVNPass(PM); +CAMLprim value llvm_add_reassociation(LLVMPassManagerRef PM) { + LLVMAddReassociatePass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_memcpy_opt(LLVMPassManagerRef PM) { - LLVMAddMemCpyOptPass(PM); +CAMLprim value llvm_add_sccp(LLVMPassManagerRef PM) { + LLVMAddSCCPPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_loop_deletion(LLVMPassManagerRef PM) { - LLVMAddLoopDeletionPass(PM); +CAMLprim value llvm_add_scalar_repl_aggregates(LLVMPassManagerRef PM) { + LLVMAddScalarReplAggregatesPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_loop_idiom(LLVMPassManagerRef PM) { - LLVMAddLoopIdiomPass(PM); +CAMLprim value llvm_add_scalar_repl_aggregates_ssa(LLVMPassManagerRef PM) { + LLVMAddScalarReplAggregatesPassSSA(PM); + return Val_unit; +} + +/* int -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +CAMLprim value llvm_add_scalar_repl_aggregates_with_threshold(value threshold, + LLVMPassManagerRef PM) { + LLVMAddScalarReplAggregatesPassWithThreshold(PM, Int_val(threshold)); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_lib_call_simplification(LLVMPassManagerRef PM) { +CAMLprim value llvm_add_simplify_lib_calls(LLVMPassManagerRef PM) { LLVMAddSimplifyLibCallsPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +CAMLprim value llvm_add_tail_call_elimination(LLVMPassManagerRef PM) { + LLVMAddTailCallEliminationPass(PM); + return Val_unit; +} + +/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +CAMLprim value llvm_add_constant_propagation(LLVMPassManagerRef PM) { + LLVMAddConstantPropagationPass(PM); + return Val_unit; +} + +/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +CAMLprim value llvm_add_demote_memory_to_register(LLVMPassManagerRef PM) { + LLVMAddDemoteMemoryToRegisterPass(PM); + return Val_unit; +} + +/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ CAMLprim value llvm_add_verifier(LLVMPassManagerRef PM) { LLVMAddVerifierPass(PM); return Val_unit; @@ -201,13 +231,13 @@ CAMLprim value llvm_add_type_based_alias_analysis(LLVMPassManagerRef PM) { } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_basic_alias_analysis(LLVMPassManagerRef PM) { - LLVMAddBasicAliasAnalysisPass(PM); +CAMLprim value llvm_add_scoped_no_alias_aa(LLVMPassManagerRef PM) { + LLVMAddScopedNoAliasAAPass(PM); return Val_unit; } /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ -CAMLprim value llvm_add_partially_inline_lib_calls(LLVMPassManagerRef PM) { - LLVMAddPartiallyInlineLibCallsPass(PM); +CAMLprim value llvm_add_basic_alias_analysis(LLVMPassManagerRef PM) { + LLVMAddBasicAliasAnalysisPass(PM); return Val_unit; } |

