(*===-- 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::createAlwaysInlinerPass function. *) external add_always_inliner : [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_always_inliner" (** 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"