LLVM API Documentation
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) |
FunctionPass * | llvm::createFastRegisterAllocator () |
FunctionPass * | llvm::createBasicRegisterAllocator () |
FunctionPass * | llvm::createGreedyRegisterAllocator () |
FunctionPass * | llvm::createDefaultPBQPRegisterAllocator () |
FunctionPass * | llvm::createGCLoweringPass () |
FunctionPass * | llvm::createGCInfoPrinter (raw_ostream &OS) |
FunctionPass * | llvm::createStackProtectorPass (const TargetMachine *TM) |
FunctionPass * | llvm::createMachineVerifierPass (const char *Banner=nullptr) |
FunctionPass * | llvm::createDwarfEHPass (const TargetMachine *TM) |
FunctionPass * | llvm::createSjLjEHPreparePass (const TargetMachine *TM) |
FunctionPass * | llvm::createExecutionDependencyFixPass (const TargetRegisterClass *RC) |
ModulePass * | llvm::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 INITIALIZE_TM_PASS | ( | passName, | |
arg, | |||
name, | |||
cfg, | |||
analysis | |||
) |
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.