LLVM: New Pass Manager (original) (raw)

Typedefs
typedef typedefLLVM_C_EXTERN_C_BEGIN struct LLVMOpaquePassBuilderOptions * LLVMPassBuilderOptionsRef
A set of options passed which are attached to the Pass Manager upon run.
Functions
LLVM_C_ABI LLVMErrorRef LLVMRunPasses (LLVMModuleRef M, const char *Passes, LLVMTargetMachineRef TM, LLVMPassBuilderOptionsRef Options)
Construct and run a set of passes over a module.
LLVM_C_ABI LLVMErrorRef LLVMRunPassesOnFunction (LLVMValueRef F, const char *Passes, LLVMTargetMachineRef TM, LLVMPassBuilderOptionsRef Options)
Construct and run a set of passes over a function.
LLVM_C_ABI LLVMPassBuilderOptionsRef LLVMCreatePassBuilderOptions (void)
Create a new set of options for a PassBuilder.
LLVM_C_ABI void LLVMPassBuilderOptionsSetVerifyEach (LLVMPassBuilderOptionsRef Options, LLVMBool VerifyEach)
Toggle adding the VerifierPass for the PassBuilder, ensuring all functions inside the module is valid.
LLVM_C_ABI void LLVMPassBuilderOptionsSetDebugLogging (LLVMPassBuilderOptionsRef Options, LLVMBool DebugLogging)
Toggle debug logging when running the PassBuilder.
LLVM_C_ABI void LLVMPassBuilderOptionsSetAAPipeline (LLVMPassBuilderOptionsRef Options, const char *AAPipeline)
Specify a custom alias analysis pipeline for the PassBuilder to be used instead of the default one.
LLVM_C_ABI void LLVMPassBuilderOptionsSetLoopInterleaving (LLVMPassBuilderOptionsRef Options, LLVMBool LoopInterleaving)
LLVM_C_ABI void LLVMPassBuilderOptionsSetLoopVectorization (LLVMPassBuilderOptionsRef Options, LLVMBool LoopVectorization)
LLVM_C_ABI void LLVMPassBuilderOptionsSetSLPVectorization (LLVMPassBuilderOptionsRef Options, LLVMBool SLPVectorization)
LLVM_C_ABI void LLVMPassBuilderOptionsSetLoopUnrolling (LLVMPassBuilderOptionsRef Options, LLVMBool LoopUnrolling)
LLVM_C_ABI void LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll (LLVMPassBuilderOptionsRef Options, LLVMBool ForgetAllSCEVInLoopUnroll)
LLVM_C_ABI void LLVMPassBuilderOptionsSetLicmMssaOptCap (LLVMPassBuilderOptionsRef Options, unsigned LicmMssaOptCap)
LLVM_C_ABI void LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap (LLVMPassBuilderOptionsRef Options, unsigned LicmMssaNoAccForPromotionCap)
LLVM_C_ABI void LLVMPassBuilderOptionsSetCallGraphProfile (LLVMPassBuilderOptionsRef Options, LLVMBool CallGraphProfile)
LLVM_C_ABI void LLVMPassBuilderOptionsSetMergeFunctions (LLVMPassBuilderOptionsRef Options, LLVMBool MergeFunctions)
LLVM_C_ABI void LLVMPassBuilderOptionsSetInlinerThreshold (LLVMPassBuilderOptionsRef Options, int Threshold)
LLVM_C_ABI void LLVMDisposePassBuilderOptions (LLVMPassBuilderOptionsRef Options)
Dispose of a heap-allocated PassBuilderOptions instance.

LLVMPassBuilderOptionsRef

typedef typedefLLVM_C_EXTERN_C_BEGIN struct LLVMOpaquePassBuilderOptions* LLVMPassBuilderOptionsRef

A set of options passed which are attached to the Pass Manager upon run.

This corresponds to an llvm::LLVMPassBuilderOptions instance

The details for how the different properties of this structure are used can be found in the source for LLVMRunPasses

Definition at line 39 of file PassBuilder.h.

LLVMCreatePassBuilderOptions()

Create a new set of options for a PassBuilder.

Ownership of the returned instance is given to the client, and they are responsible for it. The client should call LLVMDisposePassBuilderOptions to free the pass builder options.

Definition at line 119 of file PassBuilderBindings.cpp.

References llvm::wrap().

LLVMDisposePassBuilderOptions()

LLVMPassBuilderOptionsSetAAPipeline()

Specify a custom alias analysis pipeline for the PassBuilder to be used instead of the default one.

The string argument is not copied; the caller is responsible for ensuring it outlives the PassBuilderOptions instance.

Definition at line 133 of file PassBuilderBindings.cpp.

References Options, and llvm::unwrap().

LLVMPassBuilderOptionsSetCallGraphProfile()

LLVMPassBuilderOptionsSetDebugLogging()

LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll()

LLVM_C_ABI void LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll ( LLVMPassBuilderOptionsRef Options,
LLVMBool ForgetAllSCEVInLoopUnroll )

LLVMPassBuilderOptionsSetInlinerThreshold()

LLVM_C_ABI void LLVMPassBuilderOptionsSetInlinerThreshold ( LLVMPassBuilderOptionsRef Options,
int Threshold )

LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap()

LLVM_C_ABI void LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap ( LLVMPassBuilderOptionsRef Options,
unsigned LicmMssaNoAccForPromotionCap )

LLVMPassBuilderOptionsSetLicmMssaOptCap()

LLVMPassBuilderOptionsSetLoopInterleaving()

LLVMPassBuilderOptionsSetLoopUnrolling()

LLVMPassBuilderOptionsSetLoopVectorization()

LLVMPassBuilderOptionsSetMergeFunctions()

LLVMPassBuilderOptionsSetSLPVectorization()

LLVMPassBuilderOptionsSetVerifyEach()

LLVMRunPasses()

Construct and run a set of passes over a module.

This function takes a string with the passes that should be used. The format of this string 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 using default and friends. See opt for full reference of the Passes format.

Definition at line 101 of file PassBuilderBindings.cpp.

References Machine, Mod, Options, Passes, PassOpts, and llvm::unwrap().

LLVMRunPassesOnFunction()