LLVM API Documentation
#include "llvm/Analysis/Dominators.h"
#include "llvm/Support/CFG.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetOperations.h"
#include <algorithm>
#include <iostream>
Include dependency graph for Dominators.cpp:
Go to the source code of this file.
Namespaces | |
namespace | llvm |
Defines | |
#define | BALANCE_IDOM_TREE 0 |
Functions | |
static std::ostream & | llvm::operator<< (std::ostream &o, const std::set< BasicBlock * > &BBs) |
static std::ostream & | operator<< (std::ostream &o, const DominatorTreeBase::Node *Node) |
static void | PrintDomTree (const DominatorTreeBase::Node *N, std::ostream &o, unsigned Lev) |
Variables | |
static RegisterAnalysis< ImmediateDominators > | C ("idom","Immediate Dominators Construction", true) |
static RegisterAnalysis< DominatorSet > | B ("domset","Dominator Set Construction", true) |
static RegisterAnalysis< DominatorTree > | E ("domtree","Dominator Tree Construction", true) |
static RegisterAnalysis< DominanceFrontier > | G ("domfrontier","Dominance Frontier Construction", true) |
static RegisterAnalysis< ETForest > | D ("etforest","ET Forest Construction", true) |
#define BALANCE_IDOM_TREE 0 |
Definition at line 43 of file Dominators.cpp.
static std::ostream& operator<< | ( | std::ostream & | o, | |
const DominatorTreeBase::Node * | Node | |||
) | [static] |
static void PrintDomTree | ( | const DominatorTreeBase::Node * | N, | |
std::ostream & | o, | |||
unsigned | Lev | |||
) | [static] |
Definition at line 409 of file Dominators.cpp.
References E.
Referenced by llvm::DominatorTreeBase::print().
RegisterAnalysis<DominatorSet> B("domset","Dominator Set Construction", true) [static] |
RegisterAnalysis<ImmediateDominators> C("idom","Immediate Dominators Construction", true) [static] |
RegisterAnalysis<ETForest> D("etforest","ET Forest Construction", true) [static] |
RegisterAnalysis<DominatorTree> E("domtree","Dominator Tree Construction", true) [static] |
Referenced by AbstractTypeHasCycleThrough(), llvm::AliasSetTracker::add(), AddBlockAndPredsToSet(), llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::DSNode::addFullFunctionList(), llvm::DSNode::addFullGlobalsList(), llvm::PassManagerT< llvm::BBTraits >::addPass(), llvm::Timer::addPeakMemoryMeasurement(), llvm::DefaultIntrinsicLowering::AddPrototypes(), AddressMightEscape(), AllCalleesPassInValidPointerForArgument(), AllUsersAreLoads(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AnalyzeGlobal(), ApproximateLoopSize(), llvm::DSGraph::AssertAuxCallNodesInGraph(), llvm::DSGraph::AssertCallNodesInGraph(), llvm::DSGraph::AssertGraphOK(), BlockIsSimpleEnoughToThreadThrough(), BuildGlobalECs(), CalcRegionExitBlocks(), calcTypeName(), llvm::PostETForest::calculate(), llvm::ETForest::calculate(), CallersAllIgnoreReturnValue(), llvm::Interpreter::callFunction(), llvm::AliasAnalysis::canInstructionRangeModify(), CanPropagatePredecessorsForPHIs(), CanReachAliveNodes(), ChangeCalleesToFastCall(), CheckAllGraphs(), CheckForEscapingAllocas(), CheckVarargs(), llvm::ChooseInstructionsForDelaySlots(), llvm::DIEBlock::classof(), llvm::DIEntry::classof(), CleanupConstantGlobalUsers(), llvm::Archive::cleanUpMemory(), llvm::TypeMap< ValType, TypeClass >::clear(), llvm::Type::clearAllTypeMaps(), llvm::Constant::clearAllValueMaps(), llvm::CloneFunction(), llvm::CloneFunctionInto(), llvm::DSGraph::cloneInto(), CloneLoop(), llvm::CloneModule(), llvm::CloneTrace(), llvm::SparcV9IntCCRegClass::colorIGNode(), llvm::SparcV9RegInfo::colorMethodArgs(), llvm::StableBasicBlockNumbering::compute(), llvm::DSGraph::computeCalleeCallerMapping(), llvm::DSGraph::computeGToGGMapping(), ComputeMaxOptionalArgsSize(), ComputeTopDownOrdering(), ConcreteTypeHasCycleThrough(), llvm::ConstantArray::ConstantArray(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), ConstantIsDead(), llvm::ConstantPacked::ConstantPacked(), ConstantPropUsersOf(), llvm::ConstantStruct::ConstantStruct(), llvm::MSScheduleSB::constructKernel(), llvm::MSSchedule::constructKernel(), llvm::TargetRegisterClass::contains(), llvm::AliasSetTracker::containsPointer(), ConvertOperandToType(), CountCodeReductionForAlloca(), CountCodeReductionForConstant(), llvm::CallGraph::destroy(), llvm::X86SharedAsmPrinter::doFinalization(), llvm::Inliner::doFinalization(), llvm::ELFWriter::doFinalization(), llvm::Module::dropAllReferences(), llvm::Function::dropAllReferences(), llvm::BasicBlock::dropAllReferences(), llvm::SelectionDAG::dump(), llvm::SchedGraph::dump(), dumpIntersection(), llvm::PassManagerT< llvm::BBTraits >::dumpPassStructure(), EliminateUsesOfECGlobals(), llvm::AsmPrinter::EmitGlobalConstant(), llvm::ExecutionEngine::emitGlobals(), llvm::ScheduleDAG::EmitNode(), llvm::PassRegistrationListener::enumeratePasses(), EvaluateFunction(), EvaluateStaticConstructor(), llvm::Interpreter::executeGEPOperation(), llvm::ExpressionConvertibleToType(), FindCallEndFromCallStart(), FindIntervalInVector(), llvm::Archive::findModulesDefiningSymbols(), FoldValueComparisonIntoPredecessors(), llvm::FunctionLoweringInfo::FunctionLoweringInfo(), GetAllAuxCallees(), GetAllDefinedSymbols(), llvm::Archive::getAllModules(), llvm::MRegisterInfo::getAllocatableSet(), GetAllUndefinedSymbols(), llvm::ProfileInfoLoader::getBlockCounts(), llvm::DSGraph::getCallSiteForArguments(), llvm::ReachabilityCloner::getClonedNH(), llvm::TargetMachineRegistry::getClosestStaticTargetForModule(), llvm::TargetMachineRegistry::getClosestTargetForJIT(), getCommonReturnValue(), llvm::DSGraph::getDSCallSiteForCallSite(), llvm::ProfileInfoLoader::getEdgeCounts(), GetElementPtrConstantExpr::GetElementPtrConstantExpr(), llvm::Loop::getExitBlocks(), llvm::DSGraph::getFunctionArgumentsForCall(), llvm::ProfileInfoLoader::getFunctionCounts(), llvm::ExecutionEngine::getGlobalValueAtAddress(), getGlobalVariablesUsing(), llvm::MSchedGraphSBNode::getInEdge(), llvm::MSchedGraphNode::getInEdge(), llvm::MSchedGraphSBNode::getInEdgeNum(), llvm::MSchedGraphNode::getInEdgeNum(), llvm::MSchedGraphSBNode::getIteDiff(), llvm::MSchedGraphNode::getIteDiff(), llvm::Module::getNamedFunction(), llvm::Module::getNamedGlobal(), getNextStopPoint(), llvm::SelectionDAG::getNode(), llvm::Loop::getNumBackEdges(), llvm::EquivalenceClasses< llvm::GlobalValue * >::getNumClasses(), llvm::SlotCalculator::getPlane(), llvm::SelectionDAGLowering::GetRegistersForValue(), llvm::BasicBlock::getSinglePredecessor(), getSingleUnscheduledPred(), llvm::SourceFunctionInfo::getSourceLocation(), getSubElementHash(), getTypeDescription(), llvm::Mangler::getTypeID(), HandleInlinedInvoke(), llvm::LiveVariables::HandleVirtRegUse(), llvm::Value::hasNUses(), llvm::SDNode::hasNUsesOfValue(), llvm::Value::hasNUsesOrMore(), llvm::Value::hasOneUse(), HoistThenElseCodeToIf(), llvm::SlotCalculator::incorporateFunction(), llvm::TargetNameParser::initialize(), llvm::InlineFunction(), llvm::SCEVExpander::InsertCastOfTo(), InsertCodeToShowFunctionEntry(), llvm::InstrForest::InstrForest(), llvm::LiveVariables::instructionChanged(), llvm::IntervalPartition::IntervalPartition(), isAllocatableRegister(), llvm::Archive::isBytecodeArchive(), llvm::isCriticalEdge(), llvm::Interval::isLoop(), isOnlyADirectCall(), llvm::SDNode::isOnlyUse(), isOnlyUsedInEntryBlock(), IsOnlyUsedInEqualsZeroComparison(), isPathTransparentTo(), isSafeToLoadUnconditionally(), llvm::MSchedGraphSBNode::isSuccessor(), llvm::MSchedGraphNode::isSuccessor(), llvm::SchedPriorities::issuedReadyNodeAt(), isTrivialLoopExitBlockHelper(), IsTrivialUnswitchCondition(), isUsedOutsideOfDefiningBlock(), llvm::LiveInterval::join(), LinkFunctionBodies(), LinkFunctionBody(), LinkFunctionProtos(), LinkGlobalInits(), LinkGlobals(), llvm::Linker::LinkInArchive(), llvm::Linker::LinkInItems(), llvm::Linker::LinkInLibraries(), llvm::Linker::LinkModules(), LoopValuesUsedOutsideLoop(), llvm::TargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::Mangler::makeNameProper(), llvm::Mangler::Mangler(), MarkAliveBlocks(), MarkBlocksLiveIn(), markIncompleteNode(), llvm::DSGraph::markIncompleteNodes(), llvm::DSNode::markReachableNodes(), llvm::LiveVariables::MarkVirtRegAliveInBlock(), llvm::DSGraph::maskNodeTypes(), llvm::ReachabilityCloner::merge(), llvm::DSGraph::mergeInGraph(), PerModuleInfo::ModuleDone(), llvm::SDNode::MorphNodeTo(), llvm::MSchedGraphSB::MSchedGraphSB(), OnlyCalledDirectly(), operator<<(), llvm::operator<<(), llvm::EquivalenceClasses< llvm::GlobalValue * >::operator=(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeGEPExpression(), llvm::InlineAsm::ConstraintInfo::Parse(), llvm::cl::ParseCommandLineOptions(), llvm::BytecodeReader::ParseConstantPoolValue(), llvm::InlineAsm::ParseConstraints(), llvm::ParseException::ParseException(), llvm::BytecodeReader::ParseModuleGlobalInfo(), llvm::BytecodeReader::ParseSymbolTable(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::PointerType::PointerType(), llvm::TypeMap< ValType, TypeClass >::print(), llvm::ScalarEvolution::print(), llvm::MSScheduleSB::print(), llvm::MSSchedule::print(), llvm::MachineFunction::print(), llvm::MachineBasicBlock::print(), llvm::LoopInfo::print(), llvm::Loop::print(), llvm::LiveIntervals::print(), llvm::LiveInterval::print(), llvm::Interval::print(), llvm::FindUsedTypes::print(), llvm::ETForestBase::print(), llvm::DominanceFrontierBase::print(), llvm::DominatorSetBase::print(), llvm::ImmediateDominatorsBase::print(), llvm::CallGraphNode::print(), llvm::CallGraph::print(), llvm::BitSetVector::print(), llvm::AliasSetTracker::print(), llvm::AliasSet::print(), llvm::PrintBytecodeAnalysis(), printCollection(), PrintDomTree(), PrintLoopInfo(), PrintMap(), llvm::MSScheduleSB::printSchedule(), llvm::printSet(), llvm::Type::PromoteAbstractToConcrete(), llvm::TypeMap< ValType, TypeClass >::RefineAbstractType(), llvm::RegisterPassBase::registerPass(), llvm::LoopInfo::releaseMemory(), llvm::LocalDataStructures::releaseMemory(), llvm::FunctionLiveVarInfo::releaseMemory(), llvm::TDDataStructures::releaseMyMemory(), llvm::BUDataStructures::releaseMyMemory(), llvm::RemapInstruction(), RemapInstruction(), llvm::SelectionDAG::RemoveDeadNodes(), llvm::DSGraph::removeDeadNodes(), removeIdenticalCalls(), llvm::DSGraph::removeTriviallyDeadNodes(), llvm::Function::renameLocalSymbols(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::User::replaceUsesOfWith(), ReplaceUsesOfWith(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ETForestBase::reset(), llvm::DominatorTreeBase::reset(), ResolveDefinitions(), llvm::PeepholeOpts::runOnBasicBlock(), llvm::UnifyFunctionExitNodes::runOnFunction(), llvm::SelectionDAGISel::runOnFunction(), llvm::PostDominatorSet::runOnFunction(), llvm::ImmediatePostDominators::runOnFunction(), llvm::BasicBlockPass::runOnFunction(), llvm::ModuloSchedulingSBPass::runOnFunction(), llvm::ModuloSchedulingPass::runOnFunction(), llvm::IntervalPartition::runOnFunction(), llvm::DominatorSet::runOnFunction(), llvm::ImmediateDominators::runOnFunction(), llvm::X86IntelAsmPrinter::runOnMachineFunction(), llvm::X86ATTAsmPrinter::runOnMachineFunction(), llvm::SparcV9CodeEmitter::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::TDDataStructures::runOnModule(), llvm::FunctionPass::runOnModule(), llvm::LocalDataStructures::runOnModule(), llvm::FindUsedTypes::runOnModule(), llvm::EquivClassGraphs::runOnModule(), llvm::CompleteBUDataStructures::runOnModule(), llvm::CallGraphSCCPass::runOnModule(), llvm::BUDataStructures::runOnModule(), llvm::Inliner::runOnSCC(), llvm::PassManagerT< llvm::BBTraits >::runOnUnit(), SafeToMergeTerminators(), llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(), llvm::set_intersect(), llvm::SimplifyCFG(), llvm::DSScalarMap::spliceFrom(), llvm::DSGraph::spliceFrom(), llvm::BasicBlock::splitBasicBlock(), llvm::MachineInstr::substituteValue(), llvm::SparcV9RegInfo::suggestRegs4MethodArgs(), llvm::TargetNameParser::targetRegistered(), TryToSinkInstruction(), llvm::TypeMapBase::TypeBecameConcrete(), TypeContains(), TypeHasCycleThroughItself(), llvm::RegisterPassBase::unregisterPass(), UpdateCallGraphAfterInlining(), llvm::ETForestBase::updateDFSNumbers(), llvm::ValueConvertibleToType(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::VirtRegMap::virtFolded(), llvm::SelectionDAGLowering::visitGetElementPtr(), llvm::GraphWriter< GraphType >::writeNodes(), llvm::Archive::writeSymbolTable(), llvm::Archive::writeToDisk(), llvm::DSGraph::~DSGraph(), llvm::sys::DynamicLibrary::~DynamicLibrary(), llvm::MSchedGraph::~MSchedGraph(), llvm::MSchedGraphSB::~MSchedGraphSB(), llvm::PassManagerT< llvm::BBTraits >::~PassManagerT(), llvm::ProgramInfo::~ProgramInfo(), llvm::SchedGraphSet::~SchedGraphSet(), llvm::SchedulingManager::~SchedulingManager(), and llvm::Value::~Value().
RegisterAnalysis<DominanceFrontier> G("domfrontier","Dominance Frontier Construction", true) [static] |