package llvm

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Llvm_passbuilder

type llpassbuilder_options
val run_passes : Llvm.llmodule -> string -> Llvm_target.TargetMachine.t -> llpassbuilder_options -> (unit, string) Stdlib.result

run_passes m passes tm opts runs a set of passes over a module. The format of the string passes is the same as opt's -passes argument for the new pass manager. Individual passes may be specified, separated by commas. Full pipelines may also be invoked. See LLVMRunPasses.

val create_passbuilder_options : unit -> llpassbuilder_options

Creates a new set of options for a PassBuilder. See llvm::LLVMPassBuilderOptions::LLVMPassBuilderOptions.

val passbuilder_options_set_verify_each : llpassbuilder_options -> bool -> unit

Toggles adding the VerifierPass for the PassBuilder. See llvm::LLVMPassBuilderOptions::VerifyEach.

val passbuilder_options_set_debug_logging : llpassbuilder_options -> bool -> unit

Toggles debug logging. See llvm::LLVMPassBuilderOptions::DebugLogging.

val passbuilder_options_set_loop_interleaving : llpassbuilder_options -> bool -> unit

Tuning option to set loop interleaving on/off, set based on opt level. See llvm::PipelineTuningOptions::LoopInterleaving.

val passbuilder_options_set_loop_vectorization : llpassbuilder_options -> bool -> unit

Tuning option to enable/disable loop vectorization, set based on opt level. See llvm::PipelineTuningOptions::LoopVectorization.

val passbuilder_options_set_slp_vectorization : llpassbuilder_options -> bool -> unit

Tuning option to enable/disable slp loop vectorization, set based on opt level. See llvm::PipelineTuningOptions::SLPVectorization.

val passbuilder_options_set_loop_unrolling : llpassbuilder_options -> bool -> unit

Tuning option to enable/disable loop unrolling. Its default value is true. See llvm::PipelineTuningOptions::LoopUnrolling.

val passbuilder_options_set_forget_all_scev_in_loop_unroll : llpassbuilder_options -> bool -> unit

Tuning option to forget all SCEV loops in LoopUnroll. See llvm::PipelineTuningOptions::ForgetAllSCEVInLoopUnroll.

val passbuilder_options_set_licm_mssa_opt_cap : llpassbuilder_options -> int -> unit

Tuning option to cap the number of calls to retrive clobbering accesses in MemorySSA, in LICM. See llvm::PipelineTuningOptions::LicmMssaOptCap.

val passbuilder_options_set_licm_mssa_no_acc_for_promotion_cap : llpassbuilder_options -> int -> unit

Tuning option to disable promotion to scalars in LICM with MemorySSA, if the number of accesses is too large. See llvm::PipelineTuningOptions::LicmMssaNoAccForPromotionCap.

val passbuilder_options_set_call_graph_profile : llpassbuilder_options -> bool -> unit

Tuning option to enable/disable call graph profile. See llvm::PipelineTuningOptions::CallGraphProfile.

val passbuilder_options_set_merge_functions : llpassbuilder_options -> bool -> unit

Tuning option to enable/disable function merging. See llvm::PipelineTuningOptions::MergeFunctions.

val passbuilder_options_set_inliner_threshold : llpassbuilder_options -> int -> unit

Tuning option to override the default inliner threshold. See llvm::PipelineTuningOptions::InlinerThreshold.

val dispose_passbuilder_options : llpassbuilder_options -> unit

Disposes of the options.

OCaml

Innovation. Community. Security.