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.