Safe Haskell | Safe |
---|---|
Language | Haskell98 |
This module provides an enumeration of the various transformation (e.g. optimization) passes
provided by LLVM. They can be used to create a PassManager
to, in turn,
run the passes on Module
s. If you don't know what passes you want, consider
instead using CuratedPassSetSpec
.
- data Pass
- = AggressiveDeadCodeElimination
- | BreakCriticalEdges
- | CodeGenPrepare
- | ConstantPropagation
- | CorrelatedValuePropagation
- | DeadCodeElimination
- | DeadInstructionElimination
- | DeadStoreElimination
- | DemoteRegisterToMemory
- | EarlyCommonSubexpressionElimination
- | GlobalValueNumbering { }
- | InductionVariableSimplify
- | InstructionCombining
- | JumpThreading
- | LoopClosedSingleStaticAssignment
- | LoopInvariantCodeMotion
- | LoopDeletion
- | LoopIdiom
- | LoopInstructionSimplify
- | LoopRotate
- | LoopStrengthReduce
- | LoopUnroll { }
- | LoopUnswitch { }
- | LowerAtomic
- | LowerInvoke
- | LowerSwitch
- | LowerExpectIntrinsic
- | MemcpyOptimization
- | PromoteMemoryToRegister
- | Reassociate
- | ScalarReplacementOfAggregates { }
- | OldScalarReplacementOfAggregates { }
- | SparseConditionalConstantPropagation
- | SimplifyLibCalls
- | SimplifyControlFlowGraph
- | Sinking
- | TailCallElimination
- | AlwaysInline { }
- | ArgumentPromotion
- | ConstantMerge
- | FunctionAttributes
- | FunctionInlining { }
- | GlobalDeadCodeElimination
- | InternalizeFunctions {
- exportList :: [String]
- | InterproceduralConstantPropagation
- | InterproceduralSparseConditionalConstantPropagation
- | MergeFunctions
- | PartialInlining
- | PruneExceptionHandling
- | StripDeadDebugInfo
- | StripDebugDeclare
- | StripNonDebugSymbols
- | StripSymbols { }
- | LoopVectorize { }
- | SuperwordLevelParallelismVectorize
- | GCOVProfiler { }
- | AddressSanitizer
- | AddressSanitizerModule
- | MemorySanitizer {
- trackOrigins :: Bool
- | ThreadSanitizer
- | BoundsChecking
- defaultLoopVectorize :: Pass
- newtype GCOVVersion = GCOVVersion ShortByteString
- defaultGCOVProfiler :: Pass
- defaultAddressSanitizer :: Pass
- defaultAddressSanitizerModule :: Pass
- defaultMemorySanitizer :: Pass
- defaultThreadSanitizer :: Pass
Documentation
http://llvm.org/docs/Passes.html#transform-passes
A few passes can make use of information in a TargetMachine
if one
is provided to createPassManager
.
http://llvm.org/doxygen/classllvm_1_1Pass.html
defaultLoopVectorize :: Pass Source #
Defaults for the LoopVectorize
pass
newtype GCOVVersion Source #
defaultGCOVProfiler :: Pass Source #
Defaults for GCOVProfiler
.
defaultAddressSanitizer :: Pass Source #
Defaults for AddressSanitizer
.
defaultAddressSanitizerModule :: Pass Source #
Defaults for AddressSanitizerModule
.
defaultMemorySanitizer :: Pass Source #
Defaults for MemorySanitizer
.
defaultThreadSanitizer :: Pass Source #
Defaults for ThreadSanitizer
.