From 42187d2c0029969f3b6239e54b4cc5ed31e4d9e0 Mon Sep 17 00:00:00 2001 From: Peter Zotov Date: Fri, 31 Oct 2014 09:19:03 +0000 Subject: [OCaml] Ensure consistent naming. Specifically: * Directories match module names. * Test names match module names. * The language is called "OCaml", not "Ocaml". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220958 91177308-0d34-0410-b5e6-96231b3b80d8 --- bindings/ocaml/linker/linker_ocaml.c | 2 +- bindings/ocaml/transforms/Makefile | 2 +- bindings/ocaml/transforms/scalar/Makefile | 19 -- .../ocaml/transforms/scalar/llvm_scalar_opts.ml | 120 ---------- .../ocaml/transforms/scalar/llvm_scalar_opts.mli | 198 ----------------- .../ocaml/transforms/scalar/scalar_opts_ocaml.c | 243 --------------------- bindings/ocaml/transforms/scalar_opts/Makefile | 19 ++ .../transforms/scalar_opts/llvm_scalar_opts.ml | 120 ++++++++++ .../transforms/scalar_opts/llvm_scalar_opts.mli | 198 +++++++++++++++++ .../transforms/scalar_opts/scalar_opts_ocaml.c | 243 +++++++++++++++++++++ 10 files changed, 582 insertions(+), 582 deletions(-) delete mode 100644 bindings/ocaml/transforms/scalar/Makefile delete mode 100644 bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml delete mode 100644 bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli delete mode 100644 bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c create mode 100644 bindings/ocaml/transforms/scalar_opts/Makefile create mode 100644 bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml create mode 100644 bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli create mode 100644 bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c (limited to 'bindings/ocaml') diff --git a/bindings/ocaml/linker/linker_ocaml.c b/bindings/ocaml/linker/linker_ocaml.c index ade0fbb56d9..ed37777d852 100644 --- a/bindings/ocaml/linker/linker_ocaml.c +++ b/bindings/ocaml/linker/linker_ocaml.c @@ -1,4 +1,4 @@ -/*===-- linker_ocaml.c - LLVM Ocaml Glue ------------------------*- C++ -*-===*\ +/*===-- linker_ocaml.c - LLVM OCaml Glue ------------------------*- C++ -*-===*\ |* *| |* The LLVM Compiler Infrastructure *| |* *| diff --git a/bindings/ocaml/transforms/Makefile b/bindings/ocaml/transforms/Makefile index 92c8396d919..f3637a6717c 100644 --- a/bindings/ocaml/transforms/Makefile +++ b/bindings/ocaml/transforms/Makefile @@ -8,7 +8,7 @@ ##===----------------------------------------------------------------------===## LEVEL := ../../.. -DIRS = scalar ipo vectorize passmgr_builder +DIRS = scalar_opts ipo vectorize passmgr_builder ocamldoc: $(Verb) for i in $(DIRS) ; do \ diff --git a/bindings/ocaml/transforms/scalar/Makefile b/bindings/ocaml/transforms/scalar/Makefile deleted file mode 100644 index 6e250f66e85..00000000000 --- a/bindings/ocaml/transforms/scalar/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -##===- bindings/ocaml/transforms/scalar/Makefile -----------*- Makefile -*-===## -# -# The LLVM Compiler Infrastructure -# -# This file is distributed under the University of Illinois Open Source -# License. See LICENSE.TXT for details. -# -##===----------------------------------------------------------------------===## -# -# This is the makefile for the Objective Caml Llvm_scalar_opts interface. -# -##===----------------------------------------------------------------------===## - -LEVEL := ../../../.. -LIBRARYNAME := llvm_scalar_opts -UsedComponents := scalaropts -UsedOcamlInterfaces := llvm - -include ../../Makefile.ocaml diff --git a/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml b/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml deleted file mode 100644 index b90d0aecd2a..00000000000 --- a/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml +++ /dev/null @@ -1,120 +0,0 @@ -(*===-- llvm_scalar_opts.ml - LLVM OCaml Interface ------------*- OCaml -*-===* - * - * The LLVM Compiler Infrastructure - * - * This file is distributed under the University of Illinois Open Source - * License. See LICENSE.TXT for details. - * - *===----------------------------------------------------------------------===*) - -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/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli b/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli deleted file mode 100644 index b4cefed76d5..00000000000 --- a/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli +++ /dev/null @@ -1,198 +0,0 @@ -(*===-- llvm_scalar_opts.mli - LLVM OCaml Interface -----------*- OCaml -*-===* - * - * The LLVM Compiler Infrastructure - * - * This file is distributed under the University of Illinois Open Source - * License. See LICENSE.TXT for details. - * - *===----------------------------------------------------------------------===*) - -(** Scalar Transforms. - - This interface provides an OCaml API for LLVM scalar transforms, the - classes in the [LLVMScalarOpts] library. *) - -(** See the [llvm::createAggressiveDCEPass] function. *) -external add_aggressive_dce - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_aggressive_dce" - -(** 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" - -(** See [llvm::createScalarizerPass] function. *) -external add_scalarizer - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_scalarizer" - -(** 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::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_simplify" - -(** See the [llvm::createInstructionCombiningPass] function. *) -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" - -(** See the [llvm::createLoopDeletionPass] function. *) -external add_loop_deletion - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_loop_deletion" - -(** 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_rotate" - -(** See the [llvm::createLoopRerollPass] function. *) -external add_loop_reroll - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_loop_reroll" - -(** See the [llvm::createLoopUnrollPass] function. *) -external add_loop_unroll - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_loop_unroll" - -(** See the [llvm::createLoopUnswitchPass] function. *) -external add_loop_unswitch - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_loop_unswitch" - -(** See the [llvm::createMemCpyOptPass] function. *) -external add_memcpy_opt - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_memcpy_opt" - -(** 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::createLowerSwitchPass] function. *) -external add_lower_switch - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_lower_switch" - -(** 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::createReassociatePass] function. *) -external add_reassociation - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_reassociation" - -(** 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" - -(** 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_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" - -(** See the [llvm::createCorrelatedValuePropagationPass] function. *) -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" - -(** See the [llvm::createLowerExpectIntrinsicPass] function. *) -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" - -(** 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::createBasicAliasAnalysisPass] function. *) -external add_basic_alias_analysis - : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit - = "llvm_add_basic_alias_analysis" diff --git a/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c b/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c deleted file mode 100644 index bae4e31710e..00000000000 --- a/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c +++ /dev/null @@ -1,243 +0,0 @@ -/*===-- scalar_opts_ocaml.c - LLVM OCaml Glue -------------------*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This file glues LLVM's OCaml interface to its C interface. These functions *| -|* are by and large transparent wrappers to the corresponding C functions. *| -|* *| -|* Note that these functions intentionally take liberties with the CAMLparamX *| -|* macros, since most of the parameters are not GC heap objects. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#include "llvm-c/Transforms/Scalar.h" -#include "caml/mlvalues.h" -#include "caml/misc.h" - -/* [ unit */ -CAMLprim value llvm_add_aggressive_dce(LLVMPassManagerRef PM) { - LLVMAddAggressiveDCEPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_alignment_from_assumptions(LLVMPassManagerRef PM) { - LLVMAddAlignmentFromAssumptionsPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_cfg_simplification(LLVMPassManagerRef PM) { - LLVMAddCFGSimplificationPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_dead_store_elimination(LLVMPassManagerRef PM) { - LLVMAddDeadStoreEliminationPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_scalarizer(LLVMPassManagerRef PM) { - LLVMAddScalarizerPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_merged_load_store_motion(LLVMPassManagerRef PM) { - LLVMAddMergedLoadStoreMotionPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_gvn(LLVMPassManagerRef PM) { - LLVMAddGVNPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_ind_var_simplify(LLVMPassManagerRef PM) { - LLVMAddIndVarSimplifyPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_instruction_combining(LLVMPassManagerRef PM) { - LLVMAddInstructionCombiningPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_jump_threading(LLVMPassManagerRef PM) { - LLVMAddJumpThreadingPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_licm(LLVMPassManagerRef PM) { - LLVMAddLICMPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_loop_deletion(LLVMPassManagerRef PM) { - LLVMAddLoopDeletionPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_loop_idiom(LLVMPassManagerRef PM) { - LLVMAddLoopIdiomPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_loop_rotate(LLVMPassManagerRef PM) { - LLVMAddLoopRotatePass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_loop_reroll(LLVMPassManagerRef PM) { - LLVMAddLoopRerollPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_loop_unroll(LLVMPassManagerRef PM) { - LLVMAddLoopUnrollPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_loop_unswitch(LLVMPassManagerRef PM) { - LLVMAddLoopUnswitchPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_memcpy_opt(LLVMPassManagerRef PM) { - LLVMAddMemCpyOptPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_partially_inline_lib_calls(LLVMPassManagerRef PM) { - LLVMAddPartiallyInlineLibCallsPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_lower_switch(LLVMPassManagerRef PM) { - LLVMAddLowerSwitchPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_promote_memory_to_register(LLVMPassManagerRef PM) { - LLVMAddPromoteMemoryToRegisterPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_reassociation(LLVMPassManagerRef PM) { - LLVMAddReassociatePass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_sccp(LLVMPassManagerRef PM) { - LLVMAddSCCPPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_scalar_repl_aggregates(LLVMPassManagerRef PM) { - LLVMAddScalarReplAggregatesPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_scalar_repl_aggregates_ssa(LLVMPassManagerRef PM) { - LLVMAddScalarReplAggregatesPassSSA(PM); - return Val_unit; -} - -/* int -> [ unit */ -CAMLprim value llvm_add_scalar_repl_aggregates_with_threshold(value threshold, - LLVMPassManagerRef PM) { - LLVMAddScalarReplAggregatesPassWithThreshold(PM, Int_val(threshold)); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_simplify_lib_calls(LLVMPassManagerRef PM) { - LLVMAddSimplifyLibCallsPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_tail_call_elimination(LLVMPassManagerRef PM) { - LLVMAddTailCallEliminationPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_constant_propagation(LLVMPassManagerRef PM) { - LLVMAddConstantPropagationPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_demote_memory_to_register(LLVMPassManagerRef PM) { - LLVMAddDemoteMemoryToRegisterPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_verifier(LLVMPassManagerRef PM) { - LLVMAddVerifierPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_correlated_value_propagation(LLVMPassManagerRef PM) { - LLVMAddCorrelatedValuePropagationPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_early_cse(LLVMPassManagerRef PM) { - LLVMAddEarlyCSEPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_lower_expect_intrinsic(LLVMPassManagerRef PM) { - LLVMAddLowerExpectIntrinsicPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_type_based_alias_analysis(LLVMPassManagerRef PM) { - LLVMAddTypeBasedAliasAnalysisPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_scoped_no_alias_aa(LLVMPassManagerRef PM) { - LLVMAddScopedNoAliasAAPass(PM); - return Val_unit; -} - -/* [ unit */ -CAMLprim value llvm_add_basic_alias_analysis(LLVMPassManagerRef PM) { - LLVMAddBasicAliasAnalysisPass(PM); - return Val_unit; -} diff --git a/bindings/ocaml/transforms/scalar_opts/Makefile b/bindings/ocaml/transforms/scalar_opts/Makefile new file mode 100644 index 00000000000..63d86a6e0be --- /dev/null +++ b/bindings/ocaml/transforms/scalar_opts/Makefile @@ -0,0 +1,19 @@ +##===- bindings/ocaml/transforms/scalar_opts/Makefile ------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## +# +# This is the makefile for the Objective Caml Llvm_scalar_opts interface. +# +##===----------------------------------------------------------------------===## + +LEVEL := ../../../.. +LIBRARYNAME := llvm_scalar_opts +UsedComponents := scalaropts +UsedOcamlInterfaces := llvm + +include ../../Makefile.ocaml diff --git a/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml b/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml new file mode 100644 index 00000000000..b90d0aecd2a --- /dev/null +++ b/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml @@ -0,0 +1,120 @@ +(*===-- llvm_scalar_opts.ml - LLVM OCaml Interface ------------*- OCaml -*-===* + * + * The LLVM Compiler Infrastructure + * + * This file is distributed under the University of Illinois Open Source + * License. See LICENSE.TXT for details. + * + *===----------------------------------------------------------------------===*) + +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/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli b/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli new file mode 100644 index 00000000000..b4cefed76d5 --- /dev/null +++ b/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli @@ -0,0 +1,198 @@ +(*===-- llvm_scalar_opts.mli - LLVM OCaml Interface -----------*- OCaml -*-===* + * + * The LLVM Compiler Infrastructure + * + * This file is distributed under the University of Illinois Open Source + * License. See LICENSE.TXT for details. + * + *===----------------------------------------------------------------------===*) + +(** Scalar Transforms. + + This interface provides an OCaml API for LLVM scalar transforms, the + classes in the [LLVMScalarOpts] library. *) + +(** See the [llvm::createAggressiveDCEPass] function. *) +external add_aggressive_dce + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_aggressive_dce" + +(** 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" + +(** See [llvm::createScalarizerPass] function. *) +external add_scalarizer + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_scalarizer" + +(** 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::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_simplify" + +(** See the [llvm::createInstructionCombiningPass] function. *) +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" + +(** See the [llvm::createLoopDeletionPass] function. *) +external add_loop_deletion + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_deletion" + +(** 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_rotate" + +(** See the [llvm::createLoopRerollPass] function. *) +external add_loop_reroll + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_reroll" + +(** See the [llvm::createLoopUnrollPass] function. *) +external add_loop_unroll + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_unroll" + +(** See the [llvm::createLoopUnswitchPass] function. *) +external add_loop_unswitch + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_loop_unswitch" + +(** See the [llvm::createMemCpyOptPass] function. *) +external add_memcpy_opt + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_memcpy_opt" + +(** 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::createLowerSwitchPass] function. *) +external add_lower_switch + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_lower_switch" + +(** 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::createReassociatePass] function. *) +external add_reassociation + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_reassociation" + +(** 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" + +(** 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_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" + +(** See the [llvm::createCorrelatedValuePropagationPass] function. *) +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" + +(** See the [llvm::createLowerExpectIntrinsicPass] function. *) +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" + +(** 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::createBasicAliasAnalysisPass] function. *) +external add_basic_alias_analysis + : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit + = "llvm_add_basic_alias_analysis" diff --git a/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c b/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c new file mode 100644 index 00000000000..bae4e31710e --- /dev/null +++ b/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c @@ -0,0 +1,243 @@ +/*===-- scalar_opts_ocaml.c - LLVM OCaml Glue -------------------*- C++ -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file glues LLVM's OCaml interface to its C interface. These functions *| +|* are by and large transparent wrappers to the corresponding C functions. *| +|* *| +|* Note that these functions intentionally take liberties with the CAMLparamX *| +|* macros, since most of the parameters are not GC heap objects. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#include "llvm-c/Transforms/Scalar.h" +#include "caml/mlvalues.h" +#include "caml/misc.h" + +/* [ unit */ +CAMLprim value llvm_add_aggressive_dce(LLVMPassManagerRef PM) { + LLVMAddAggressiveDCEPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_alignment_from_assumptions(LLVMPassManagerRef PM) { + LLVMAddAlignmentFromAssumptionsPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_cfg_simplification(LLVMPassManagerRef PM) { + LLVMAddCFGSimplificationPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_dead_store_elimination(LLVMPassManagerRef PM) { + LLVMAddDeadStoreEliminationPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_scalarizer(LLVMPassManagerRef PM) { + LLVMAddScalarizerPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_merged_load_store_motion(LLVMPassManagerRef PM) { + LLVMAddMergedLoadStoreMotionPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_gvn(LLVMPassManagerRef PM) { + LLVMAddGVNPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_ind_var_simplify(LLVMPassManagerRef PM) { + LLVMAddIndVarSimplifyPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_instruction_combining(LLVMPassManagerRef PM) { + LLVMAddInstructionCombiningPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_jump_threading(LLVMPassManagerRef PM) { + LLVMAddJumpThreadingPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_licm(LLVMPassManagerRef PM) { + LLVMAddLICMPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_loop_deletion(LLVMPassManagerRef PM) { + LLVMAddLoopDeletionPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_loop_idiom(LLVMPassManagerRef PM) { + LLVMAddLoopIdiomPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_loop_rotate(LLVMPassManagerRef PM) { + LLVMAddLoopRotatePass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_loop_reroll(LLVMPassManagerRef PM) { + LLVMAddLoopRerollPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_loop_unroll(LLVMPassManagerRef PM) { + LLVMAddLoopUnrollPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_loop_unswitch(LLVMPassManagerRef PM) { + LLVMAddLoopUnswitchPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_memcpy_opt(LLVMPassManagerRef PM) { + LLVMAddMemCpyOptPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_partially_inline_lib_calls(LLVMPassManagerRef PM) { + LLVMAddPartiallyInlineLibCallsPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_lower_switch(LLVMPassManagerRef PM) { + LLVMAddLowerSwitchPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_promote_memory_to_register(LLVMPassManagerRef PM) { + LLVMAddPromoteMemoryToRegisterPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_reassociation(LLVMPassManagerRef PM) { + LLVMAddReassociatePass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_sccp(LLVMPassManagerRef PM) { + LLVMAddSCCPPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_scalar_repl_aggregates(LLVMPassManagerRef PM) { + LLVMAddScalarReplAggregatesPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_scalar_repl_aggregates_ssa(LLVMPassManagerRef PM) { + LLVMAddScalarReplAggregatesPassSSA(PM); + return Val_unit; +} + +/* int -> [ unit */ +CAMLprim value llvm_add_scalar_repl_aggregates_with_threshold(value threshold, + LLVMPassManagerRef PM) { + LLVMAddScalarReplAggregatesPassWithThreshold(PM, Int_val(threshold)); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_simplify_lib_calls(LLVMPassManagerRef PM) { + LLVMAddSimplifyLibCallsPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_tail_call_elimination(LLVMPassManagerRef PM) { + LLVMAddTailCallEliminationPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_constant_propagation(LLVMPassManagerRef PM) { + LLVMAddConstantPropagationPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_demote_memory_to_register(LLVMPassManagerRef PM) { + LLVMAddDemoteMemoryToRegisterPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_verifier(LLVMPassManagerRef PM) { + LLVMAddVerifierPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_correlated_value_propagation(LLVMPassManagerRef PM) { + LLVMAddCorrelatedValuePropagationPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_early_cse(LLVMPassManagerRef PM) { + LLVMAddEarlyCSEPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_lower_expect_intrinsic(LLVMPassManagerRef PM) { + LLVMAddLowerExpectIntrinsicPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_type_based_alias_analysis(LLVMPassManagerRef PM) { + LLVMAddTypeBasedAliasAnalysisPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_scoped_no_alias_aa(LLVMPassManagerRef PM) { + LLVMAddScopedNoAliasAAPass(PM); + return Val_unit; +} + +/* [ unit */ +CAMLprim value llvm_add_basic_alias_analysis(LLVMPassManagerRef PM) { + LLVMAddBasicAliasAnalysisPass(PM); + return Val_unit; +} -- cgit v1.2.3