| (*===-- llvm_ipo.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. | |
| * | |
| *===----------------------------------------------------------------------===*) | |
| (** IPO Transforms. | |
| This interface provides an ocaml API for LLVM interprocedural optimizations, the | |
| classes in the [LLVMIPO] library. *) | |
| (** See llvm::createAddArgumentPromotionPass *) | |
| external add_argument_promotion : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_argument_promotion" | |
| (** See llvm::createConstantMergePass function. *) | |
| external add_constant_merge : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_constant_merge" | |
| (** See llvm::createDeadArgEliminationPass function. *) | |
| external add_dead_arg_elimination : | |
| [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_dead_arg_elimination" | |
| (** See llvm::createFunctionAttrsPass function. *) | |
| external add_function_attrs : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_function_attrs" | |
| (** See llvm::createFunctionInliningPass function. *) | |
| external add_function_inlining : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_function_inlining" | |
| (** See llvm::createGlobalDCEPass function. *) | |
| external add_global_dce : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_global_dce" | |
| (** See llvm::createGlobalOptimizerPass function. *) | |
| external add_global_optimizer : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_global_optimizer" | |
| (** See llvm::createIPConstantPropagationPass function. *) | |
| external add_ipc_propagation : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_ipc_propagation" | |
| (** See llvm::createPruneEHPass function. *) | |
| external add_prune_eh : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_prune_eh" | |
| (** See llvm::createIPSCCPPass function. *) | |
| external add_ipsccp : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_ipsccp" | |
| (** See llvm::createInternalizePass function. *) | |
| external add_internalize : [ | `Module ] Llvm.PassManager.t -> bool -> unit = | |
| "llvm_add_internalize" | |
| (** See llvm::createStripDeadPrototypesPass function. *) | |
| external add_strip_dead_prototypes : | |
| [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_strip_dead_prototypes" | |
| (** See llvm::createStripSymbolsPass function. *) | |
| external add_strip_symbols : [ | `Module ] Llvm.PassManager.t -> unit = | |
| "llvm_add_strip_symbols" |