LLVM API Documentation

Classes | Namespaces | Defines | Functions | Variables
CodeGen/Passes.h File Reference
#include "llvm/Pass.h"
#include "llvm/Target/TargetMachine.h"
#include <string>
Include dependency graph for CodeGen/Passes.h:

Go to the source code of this file.

Classes

class  llvm::IdentifyingPassPtr
struct  llvm::isPodLike< IdentifyingPassPtr >
class  llvm::TargetPassConfig

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


namespace  llvm::legacy

Defines

#define INITIALIZE_TM_PASS(passName, arg, name, cfg, analysis)

Functions

FunctionPass * llvm::createAtomicExpandPass (const TargetMachine *TM)
ImmutablePass * llvm::createBasicTargetTransformInfoPass (const TargetMachine *TM)
 Create a basic TargetTransformInfo analysis pass.
FunctionPass * llvm::createUnreachableBlockEliminationPass ()
MachineFunctionPass * llvm::createMachineFunctionPrinterPass (raw_ostream &OS, const std::string &Banner="")
FunctionPass * llvm::createCodeGenPreparePass (const TargetMachine *TM=nullptr)
FunctionPassllvm::createFastRegisterAllocator ()
FunctionPassllvm::createBasicRegisterAllocator ()
FunctionPassllvm::createGreedyRegisterAllocator ()
FunctionPassllvm::createDefaultPBQPRegisterAllocator ()
FunctionPass * llvm::createGCLoweringPass ()
FunctionPassllvm::createGCInfoPrinter (raw_ostream &OS)
FunctionPass * llvm::createStackProtectorPass (const TargetMachine *TM)
FunctionPass * llvm::createMachineVerifierPass (const char *Banner=nullptr)
FunctionPassllvm::createDwarfEHPass (const TargetMachine *TM)
FunctionPassllvm::createSjLjEHPreparePass (const TargetMachine *TM)
FunctionPassllvm::createExecutionDependencyFixPass (const TargetRegisterClass *RC)
ModulePassllvm::createJumpInstrTablesPass ()
 createJumpInstrTables - This pass creates jump-instruction tables.

Variables

char & llvm::AtomicExpandID = AtomicExpand::ID
char & llvm::MachineLoopInfoID = MachineLoopInfo::ID
 MachineLoopInfo - This pass is a loop analysis pass.
char & llvm::MachineDominatorsID
 MachineDominators - This pass is a machine dominators analysis pass.
char & llvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID
 MachineDominanaceFrontier - This pass is a machine dominators analysis pass.
char & llvm::EdgeBundlesID
 EdgeBundles analysis - Bundle machine CFG edges.
char & llvm::LiveVariablesID = LiveVariables::ID
char & llvm::PHIEliminationID = PHIElimination::ID
char & llvm::LiveIntervalsID = LiveIntervals::ID
char & llvm::LiveStacksID = LiveStacks::ID
 LiveStacks pass. An analysis keeping track of the liveness of stack slots.
char & llvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID
char & llvm::ProcessImplicitDefsID = ProcessImplicitDefs::ID
 ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
char & llvm::RegisterCoalescerID = RegisterCoalescer::ID
 RegisterCoalescer - This pass merges live ranges to eliminate copies.
char & llvm::MachineSchedulerID = MachineScheduler::ID
 MachineScheduler - This pass schedules machine instructions.
char & llvm::PostMachineSchedulerID = PostMachineScheduler::ID
 PostMachineScheduler - This pass schedules machine instructions postRA.
char & llvm::SpillPlacementID = SpillPlacement::ID
char & llvm::VirtRegRewriterID = VirtRegRewriter::ID
char & llvm::UnreachableMachineBlockElimID
char & llvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID
 DeadMachineInstructionElim - This pass removes dead machine instructions.
char & llvm::PrologEpilogCodeInserterID = PEI::ID
char & llvm::ExpandPostRAPseudosID = ExpandPostRA::ID
char & llvm::PostRASchedulerID = PostRAScheduler::ID
char & llvm::BranchFolderPassID = BranchFolderPass::ID
char & llvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
 MachineFunctionPrinterPass - This pass prints out MachineInstr's.
char & llvm::TailDuplicateID = TailDuplicatePass::ID
char & llvm::MachineTraceMetricsID = MachineTraceMetrics::ID
char & llvm::EarlyIfConverterID = EarlyIfConverter::ID
char & llvm::MachineCombinerID = MachineCombiner::ID
char & llvm::StackColoringID = StackColoring::ID
char & llvm::IfConverterID = IfConverter::ID
 IfConverter - This pass performs machine code if conversion.
char & llvm::MachineBlockPlacementID = MachineBlockPlacement::ID
char & llvm::MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID
char & llvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
char & llvm::MachineCSEID = MachineCSE::ID
 MachineCSE - This pass performs global CSE on machine instructions.
char & llvm::MachineLICMID = MachineLICM::ID
 MachineLICM - This pass performs LICM on machine instructions.
char & llvm::MachineSinkingID = MachineSinking::ID
 MachineSinking - This pass performs sinking on machine instructions.
char & llvm::MachineCopyPropagationID = MachineCopyPropagation::ID
char & llvm::PeepholeOptimizerID = PeepholeOptimizer::ID
char & llvm::OptimizePHIsID = OptimizePHIs::ID
char & llvm::StackSlotColoringID = StackSlotColoring::ID
 StackSlotColoring - This pass performs stack slot coloring.
char & llvm::LocalStackSlotAllocationID = LocalStackSlotPass::ID
char & llvm::ExpandISelPseudosID = ExpandISelPseudos::ID
 ExpandISelPseudos - This pass expands pseudo-instructions.
char & llvm::UnpackMachineBundlesID = UnpackMachineBundles::ID
 UnpackMachineBundles - This pass unpack machine instruction bundles.
char & llvm::FinalizeMachineBundlesID = FinalizeMachineBundles::ID
char & llvm::StackMapLivenessID = StackMapLiveness::ID

Define Documentation

#define INITIALIZE_TM_PASS (   passName,
  arg,
  name,
  cfg,
  analysis 
)
Value:
static void* initialize##passName##PassOnce(PassRegistry &Registry) { \
    PassInfo *PI = new PassInfo(name, arg, & passName ::ID, \
      PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis, \
      PassInfo::TargetMachineCtor_t(callTargetMachineCtor< passName >)); \
    Registry.registerPass(*PI, true); \
    return PI; \
  } \
  void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
    CALL_ONCE_INITIALIZATION(initialize##passName##PassOnce) \
  }

This initializer registers TargetMachine constructor, so the pass being initialized can use target dependent interfaces. Please do not move this macro to be together with INITIALIZE_PASS, which is a complete target independent initializer, and we don't want to make libScalarOpts depend on libCodeGen.

Definition at line 608 of file CodeGen/Passes.h.