LLVM  8.0.1
Namespaces | Functions | Variables
Passes.h File Reference
#include <functional>
#include <string>
Include dependency graph for Passes.h:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Functions

FunctionPass * llvm::createAtomicExpandPass ()
 
FunctionPass * llvm::createUnreachableBlockEliminationPass ()
 createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?). More...
 
MachineFunctionPass * llvm::createMachineFunctionPrinterPass (raw_ostream &OS, const std::string &Banner="")
 MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool. More...
 
MachineFunctionPassllvm::createPrintMIRPass (raw_ostream &OS)
 MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format. More...
 
MachineFunctionPass * llvm::createResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel)
 This pass resets a MachineFunction when it has the FailedISel property as if it was just created. More...
 
FunctionPassllvm::createCodeGenPreparePass ()
 createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction selection. More...
 
FunctionPass * llvm::createScalarizeMaskedMemIntrinPass ()
 createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather and scatter intrinsics with scalar code when target doesn't support them. More...
 
FunctionPassllvm::createFastRegisterAllocator ()
 FastRegisterAllocation Pass - This pass register allocates as fast as possible. More...
 
FunctionPassllvm::createBasicRegisterAllocator ()
 BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework. More...
 
FunctionPassllvm::createGreedyRegisterAllocator ()
 Greedy register allocation pass - This pass implements a global register allocator for optimized builds. More...
 
FunctionPassllvm::createDefaultPBQPRegisterAllocator ()
 PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator. More...
 
MachineFunctionPassllvm::createPrologEpilogInserterPass ()
 
FunctionPassllvm::createIfConverter (std::function< bool(const MachineFunction &)> Ftor)
 
FunctionPass * llvm::createGCLoweringPass ()
 GCLowering Pass - Used by gc.root to perform its default lowering operations. More...
 
FunctionPassllvm::createShadowStackGCLoweringPass ()
 ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC. More...
 
FunctionPassllvm::createGCInfoPrinter (raw_ostream &OS)
 Creates a pass to print GC metadata. More...
 
FunctionPassllvm::createStackProtectorPass ()
 createStackProtectorPass - This pass adds stack protectors to functions. More...
 
FunctionPass * llvm::createMachineVerifierPass (const std::string &Banner)
 createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness. More...
 
FunctionPassllvm::createDwarfEHPass ()
 createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation. More...
 
FunctionPass * llvm::createWinEHPass (bool DemoteCatchSwitchPHIOnly=false)
 createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities. More...
 
FunctionPass * llvm::createSjLjEHPreparePass ()
 createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow. More...
 
FunctionPass * llvm::createWasmEHPass ()
 createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme. More...
 
FunctionPassllvm::createUnpackMachineBundles (std::function< bool(const MachineFunction &)> Ftor)
 
ModulePass * llvm::createJumpInstrTablesPass ()
 createJumpInstrTables - This pass creates jump-instruction tables. More...
 
ModulePass * llvm::createForwardControlFlowIntegrityPass ()
 createForwardControlFlowIntegrityPass - This pass adds control-flow integrity. More...
 
FunctionPassllvm::createInterleavedAccessPass ()
 InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics. More...
 
FunctionPassllvm::createInterleavedLoadCombinePass ()
 InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass. More...
 
ModulePass * llvm::createLowerEmuTLSPass ()
 LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model. More...
 
ModulePass * llvm::createPreISelIntrinsicLoweringPass ()
 This pass lowers the @llvm.load.relative and @llvm.objc. More...
 
Passllvm::createGlobalMergePass (const TargetMachine *TM, unsigned MaximalOffset, bool OnlyOptimizeForSize=false, bool MergeExternalByDefault=false)
 GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes. More...
 
FunctionPassllvm::createSafeStackPass ()
 This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities. More...
 
FunctionPassllvm::createRegUsageInfoCollector ()
 This pass is executed POST-RA to collect which physical registers are preserved by given machine function. More...
 
FunctionPassllvm::createRegUsageInfoPropPass ()
 Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass. More...
 
FunctionPassllvm::createFreeMachineFunctionPass ()
 This pass frees the memory occupied by the MachineFunction. More...
 
ModulePassllvm::createMachineOutlinerPass (bool RunOnAllFunctions=true)
 This pass performs outlining on machine instructions directly before printing assembly. More...
 
FunctionPassllvm::createExpandReductionsPass ()
 This pass expands the experimental reduction intrinsics into sequences of shuffles. More...
 
FunctionPassllvm::createExpandMemCmpPass ()
 
FunctionPassllvm::createBreakFalseDeps ()
 Creates Break False Dependencies pass. More...
 
FunctionPass * llvm::createIndirectBrExpandPass ()
 
FunctionPass * llvm::createCFIInstrInserter ()
 Creates CFI Instruction Inserter pass. More...
 

Variables

charllvm::AtomicExpandID = AtomicExpand::ID
 AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops. More...
 
charllvm::MachineLoopInfoID = MachineLoopInfo::ID
 MachineLoopInfo - This pass is a loop analysis pass. More...
 
charllvm::MachineDominatorsID
 MachineDominators - This pass is a machine dominators analysis pass. More...
 
charllvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID
 MachineDominanaceFrontier - This pass is a machine dominators analysis pass. More...
 
charllvm::MachineRegionInfoPassID
 MachineRegionInfo - This pass computes SESE regions for machine functions. More...
 
charllvm::EdgeBundlesID
 EdgeBundles analysis - Bundle machine CFG edges. More...
 
charllvm::LiveVariablesID = LiveVariables::ID
 LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags. More...
 
charllvm::PHIEliminationID = PHIElimination::ID
 PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions. More...
 
charllvm::LiveIntervalsID = LiveIntervals::ID
 LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers. More...
 
charllvm::LiveStacksID = LiveStacks::ID
 LiveStacks pass. An analysis keeping track of the liveness of stack slots. More...
 
charllvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID
 TwoAddressInstruction - This pass reduces two-address instructions to use two operands. More...
 
charllvm::ProcessImplicitDefsID = ProcessImplicitDefs::ID
 ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs. More...
 
charllvm::RegisterCoalescerID = RegisterCoalescer::ID
 RegisterCoalescer - This pass merges live ranges to eliminate copies. More...
 
charllvm::MachineSchedulerID = MachineScheduler::ID
 MachineScheduler - This pass schedules machine instructions. More...
 
charllvm::PostMachineSchedulerID = PostMachineScheduler::ID
 PostMachineScheduler - This pass schedules machine instructions postRA. More...
 
charllvm::SpillPlacementID = SpillPlacement::ID
 SpillPlacement analysis. More...
 
charllvm::ShrinkWrapID = ShrinkWrap::ID
 ShrinkWrap pass. Look for the best place to insert save and restore. More...
 
charllvm::LiveRangeShrinkID = LiveRangeShrink::ID
 LiveRangeShrink pass. More...
 
charllvm::RAGreedyID = RAGreedy::ID
 Greedy register allocator. More...
 
charllvm::RABasicID = RABasic::ID
 Basic register allocator. More...
 
charllvm::VirtRegRewriterID = VirtRegRewriter::ID
 VirtRegRewriter pass. More...
 
charllvm::UnreachableMachineBlockElimID
 UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks. More...
 
charllvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID
 DeadMachineInstructionElim - This pass removes dead machine instructions. More...
 
charllvm::DetectDeadLanesID = DetectDeadLanes::ID
 This pass adds dead/undef flags after analyzing subregister lanes. More...
 
charllvm::PostRAMachineSinkingID = PostRAMachineSinking::ID
 This pass perform post-ra machine sink for COPY instructions. More...
 
charllvm::PrologEpilogCodeInserterID = PEI::ID
 PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references. More...
 
charllvm::ExpandPostRAPseudosID = ExpandPostRA::ID
 ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation. More...
 
charllvm::PostRAHazardRecognizerID = PostRAHazardRecognizer::ID
 createPostRAHazardRecognizer - This pass runs the post-ra hazard recognizer. More...
 
charllvm::PostRASchedulerID = PostRAScheduler::ID
 createPostRAScheduler - This pass performs post register allocation scheduling. More...
 
charllvm::BranchFolderPassID = BranchFolderPass::ID
 BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches. More...
 
charllvm::BranchRelaxationPassID = BranchRelaxation::ID
 BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction. More...
 
charllvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
 MachineFunctionPrinterPass - This pass prints out MachineInstr's. More...
 
charllvm::MIRPrintingPassID = MIRPrintingPass::ID
 MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format. More...
 
charllvm::TailDuplicateID = TailDuplicate::ID
 TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors. More...
 
charllvm::EarlyTailDuplicateID = EarlyTailDuplicate::ID
 Duplicate blocks with unconditional branches into tails of their predecessors. More...
 
charllvm::MachineTraceMetricsID = MachineTraceMetrics::ID
 MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces. More...
 
charllvm::EarlyIfConverterID = EarlyIfConverter::ID
 EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions. More...
 
charllvm::MachineCombinerID = MachineCombiner::ID
 This pass performs instruction combining using trace metrics to estimate critical-path and resource depth. More...
 
charllvm::StackColoringID = StackColoring::ID
 StackSlotColoring - This pass performs stack coloring and merging. More...
 
charllvm::IfConverterID = IfConverter::ID
 IfConverter - This pass performs machine code if conversion. More...
 
charllvm::MachineBlockPlacementID = MachineBlockPlacement::ID
 MachineBlockPlacement - This pass places basic blocks based on branch probabilities. More...
 
charllvm::MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID
 MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information. More...
 
charllvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
 GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code. More...
 
charllvm::MachineCSEID = MachineCSE::ID
 MachineCSE - This pass performs global CSE on machine instructions. More...
 
charllvm::ImplicitNullChecksID = ImplicitNullChecks::ID
 ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations. More...
 
charllvm::MachineLICMID = MachineLICM::ID
 This pass performs loop invariant code motion on machine instructions. More...
 
charllvm::EarlyMachineLICMID = EarlyMachineLICM::ID
 This pass performs loop invariant code motion on machine instructions. More...
 
charllvm::MachineSinkingID = MachineSinking::ID
 MachineSinking - This pass performs sinking on machine instructions. More...
 
charllvm::MachineCopyPropagationID = MachineCopyPropagation::ID
 MachineCopyPropagation - This pass performs copy propagation on machine instructions. More...
 
charllvm::PeepholeOptimizerID = PeepholeOptimizer::ID
 PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations. More...
 
charllvm::OptimizePHIsID = OptimizePHIs::ID
 OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization. More...
 
charllvm::StackSlotColoringID = StackSlotColoring::ID
 StackSlotColoring - This pass performs stack slot coloring. More...
 
charllvm::FuncletLayoutID = FuncletLayout::ID
 This pass lays out funclets contiguously. More...
 
charllvm::XRayInstrumentationID = XRayInstrumentation::ID
 This pass inserts the XRay instrumentation sleds if they are supported by the target platform. More...
 
charllvm::FEntryInserterID = FEntryInserter::ID
 This pass inserts FEntry calls. More...
 
charllvm::PatchableFunctionID = PatchableFunction::ID
 This pass implements the "patchable-function" attribute. More...
 
charllvm::LocalStackSlotAllocationID = LocalStackSlotPass::ID
 LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing. More...
 
charllvm::ExpandISelPseudosID = ExpandISelPseudos::ID
 ExpandISelPseudos - This pass expands pseudo-instructions. More...
 
charllvm::UnpackMachineBundlesID = UnpackMachineBundles::ID
 UnpackMachineBundles - This pass unpack machine instruction bundles. More...
 
charllvm::FinalizeMachineBundlesID = FinalizeMachineBundles::ID
 FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g. More...
 
charllvm::StackMapLivenessID = StackMapLiveness::ID
 StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap. More...
 
charllvm::LiveDebugValuesID = LiveDebugValues::ID
 LiveDebugValues pass. More...
 
charllvm::RenameIndependentSubregsID = RenameIndependentSubregs::ID
 This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers. More...
 
charllvm::MachinePipelinerID = MachinePipeliner::ID
 This pass performs software pipelining on machine instructions. More...