# Module Llvm_scalar_opts

    module Llvm_scalar_opts: sig .. end

Scalar Transforms.

This interface provides an OCaml API for LLVM scalar transforms, the classes in the `LLVMScalarOpts` library.

    val add_aggressive_dce : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createAggressiveDCEPass` function.

    val add_dce : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createDCEPass` function.

    val add_alignment_from_assumptions : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createAlignmentFromAssumptionsPass` function.

    val add_cfg_simplification : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createCFGSimplificationPass` function.

    val add_dead_store_elimination : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See `llvm::createDeadStoreEliminationPass` function.

    val add_scalarizer : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See `llvm::createScalarizerPass` function.

    val add_merged_load_store_motion : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See `llvm::createMergedLoadStoreMotionPass` function.

    val add_gvn : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createGVNPass` function.

    val add_ind_var_simplification : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createIndVarSimplifyPass` function.

    val add_instruction_combination : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createInstructionCombiningPass` function.

    val add_jump_threading : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createJumpThreadingPass` function.

    val add_licm : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLICMPass` function.

    val add_loop_deletion : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLoopDeletionPass` function.

    val add_loop_idiom : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLoopIdiomPass` function.

    val add_loop_rotation : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLoopRotatePass` function.

    val add_loop_reroll : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLoopRerollPass` function.

    val add_loop_unroll : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLoopUnrollPass` function.

    val add_loop_unswitch : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLoopUnswitchPass` function.

    val add_memcpy_opt : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createMemCpyOptPass` function.

    val add_partially_inline_lib_calls : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createPartiallyInlineLibCallsPass` function.

    val add_lower_atomic : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLowerAtomicPass` function.

    val add_lower_switch : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLowerSwitchPass` function.

    val add_memory_to_register_promotion : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createPromoteMemoryToRegisterPass` function.

    val add_reassociation : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createReassociatePass` function.

    val add_sccp : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createSCCPPass` function.

    val add_scalar_repl_aggregation : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createSROAPass` function.

    val add_scalar_repl_aggregation_ssa : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createSROAPass` function.

    val add_scalar_repl_aggregation_with_threshold : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createSROAPass` function.

    val add_lib_call_simplification : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createSimplifyLibCallsPass` function.

    val add_tail_call_elimination : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createTailCallEliminationPass` function.

    val add_constant_propagation : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createConstantPropagationPass` function.

    val add_memory_to_register_demotion : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createDemoteMemoryToRegisterPass` function.

    val add_verifier : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createVerifierPass` function.

    val add_correlated_value_propagation : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createCorrelatedValuePropagationPass` function.

    val add_early_cse : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createEarlyCSE` function.

    val add_lower_expect_intrinsic : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLowerExpectIntrinsicPass` function.

    val add_lower_constant_intrinsics : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createLowerConstantIntrinsicsPass` function.

    val add_type_based_alias_analysis : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createTypeBasedAliasAnalysisPass` function.

    val add_scoped_no_alias_alias_analysis : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createScopedNoAliasAAPass` function.

    val add_basic_alias_analysis : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createBasicAliasAnalysisPass` function.

    val add_unify_function_exit_nodes : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit

See the `llvm::createUnifyFunctionExitNodesPass` function.