LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Dominators.cpp File Reference

#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 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< ImmediateDominatorsC ("idom","Immediate Dominators Construction", true)
static RegisterAnalysis< DominatorSetB ("domset","Dominator Set Construction", true)
static RegisterAnalysis< DominatorTreeE ("domtree","Dominator Tree Construction", true)
static RegisterAnalysis< DominanceFrontierG ("domfrontier","Dominance Frontier Construction", true)


Define Documentation

#define BALANCE_IDOM_TREE   0
 

Definition at line 42 of file Dominators.cpp.


Function Documentation

static std::ostream& operator<< std::ostream &  o,
const DominatorTreeBase::Node Node
[static]
 

Definition at line 394 of file Dominators.cpp.

References llvm::DominatorTreeBase::Node::getBlock(), and llvm::WriteAsOperand().

static void PrintDomTree const DominatorTreeBase::Node N,
std::ostream &  o,
unsigned  Lev
[static]
 

Definition at line 403 of file Dominators.cpp.

References E.

Referenced by llvm::DominatorTreeBase::print().


Variable Documentation

RegisterAnalysis<DominatorSet> B("domset","Dominator Set Construction", true) [static]
 

RegisterAnalysis<ImmediateDominators> C("idom","Immediate Dominators Construction", true) [static]
 

Referenced by AnalyzeGlobal(), llvm::ClassifyExpr(), CleanupConstantGlobalUsers(), Coerce(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldInstruction(), llvm::ConvertConstantType< ConstantPacked, PackedType >::convert(), llvm::ConvertConstantType< ConstantStruct, StructType >::convert(), llvm::ConvertConstantType< ConstantArray, ArrayType >::convert(), llvm::ConvertConstantToIntType(), DecomposeConstantExpr(), llvm::doConstantPropagation(), EvaluateExpression(), GatherConstantSetEQs(), GatherConstantSetNEs(), llvm::ConstantPacked::get(), llvm::ConstantArray::get(), getAsCString(), getGlobalVariablesUsing(), llvm::SCEVUnknown::getIntegerSCEV(), getLLVMName(), getNextStopPoint(), llvm::ConstantExpr::getSelect(), getStringValue(), llvm::HexIntToVal(), LT(), LTE(), llvm::MapValue(), OptimizeAwayTrappingUsesOfValue(), printAsCString(), llvm::JIT::runFunction(), SolveQuadraticEquation(), llvm::Value::uncheckedReplaceAllUsesWith(), and WriteConstantInt().

RegisterAnalysis<DominatorTree> E("domtree","Dominator Tree Construction", true) [static]
 

Referenced by AbstractTypeHasCycleThrough(), llvm::PassManagerT< Function >::add(), llvm::AliasSetTracker::add(), AddBlockAndPredsToSet(), llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::PassManagerT< Function >::addPass(), llvm::Timer::addPeakMemoryMeasurement(), llvm::DefaultIntrinsicLowering::AddPrototypes(), AddressMightEscape(), AllCalleesPassInValidPointerForArgument(), AllUsersAreLoads(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AnalyzeGlobal(), ApproximateLoopSize(), llvm::DSGraph::AssertGraphOK(), CalcRegionExitBlocks(), calcTypeName(), CallersAllIgnoreReturnValue(), llvm::Interpreter::callFunction(), canFoldGEPIntoLoadOrStore(), llvm::AliasAnalysis::canInstructionRangeModify(), CheckVarargs(), llvm::ChooseInstructionsForDelaySlots(), CleanupConstantGlobalUsers(), 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(), ComputeMaxOptionalArgsSize(), ConcreteTypeHasCycleThrough(), llvm::ConstantExpr::ConstantExpr(), llvm::ConstantFoldGetElementPtr(), ConstantIsDead(), ConstantPropUsersOf(), llvm::MSSchedule::constructKernel(), llvm::TargetRegisterClass::contains(), llvm::AliasSetTracker::containsPointer(), CountCodeReductionForAlloca(), CountCodeReductionForConstant(), llvm::Inliner::doFinalization(), llvm::Module::dropAllReferences(), llvm::Function::dropAllReferences(), llvm::BasicBlock::dropAllReferences(), llvm::DSGraphPrintHelper::DSGraphPrintHelper(), llvm::SchedGraph::dump(), llvm::PassManagerT< Function >::dumpPassStructure(), llvm::ExecutionEngine::emitGlobals(), llvm::PassRegistrationListener::enumeratePasses(), llvm::ExpressionConvertibleToType(), FindIntervalInVector(), llvm::Archive::findModulesDefiningSymbols(), llvm::TypeMap< ValType, TypeClass >::finishRefinement(), FoldValueComparisonIntoPredecessors(), llvm::FunctionModRefInfo::FunctionModRefInfo(), llvm::GetAllDefinedSymbols(), llvm::Archive::getAllModules(), llvm::MRegisterInfo::getAllocatableSet(), llvm::GetAllUndefinedSymbols(), llvm::getBBtrace(), llvm::ProfileInfoLoader::getBlockCounts(), llvm::DSGraph::getCallSiteForArguments(), llvm::ReachabilityCloner::getClonedNH(), llvm::TargetMachineRegistry::getClosestStaticTargetForModule(), llvm::TargetMachineRegistry::getClosestTargetForJIT(), getCommonReturnValue(), llvm::DSGraph::getDSCallSiteForCallSite(), llvm::ProfileInfoLoader::getEdgeCounts(), llvm::Loop::getExitBlocks(), llvm::ProfileInfoLoader::getFunctionCounts(), GetGEPGlobalInitializer(), llvm::ExecutionEngine::getGlobalValueAtAddress(), getGlobalVariablesUsing(), llvm::MSchedGraphNode::getInEdge(), llvm::MSchedGraphNode::getInEdgeNum(), llvm::sys::Path::GetLibraryPath(), llvm::Module::getNamedFunction(), getNextStopPoint(), llvm::Loop::getNumBackEdges(), llvm::SourceFunctionInfo::getSourceLocation(), getTypeDescription(), llvm::Mangler::getTypeID(), HandleCastToPointer(), llvm::LiveVariables::HandleVirtRegUse(), llvm::Value::hasOneUse(), HoistThenElseCodeToIf(), llvm::SlotCalculator::incorporateFunction(), llvm::TargetNameParser::initialize(), InlineCallIfPossible(), llvm::InlineFunction(), InsertCodeToShowFunctionEntry(), InsertPHINodesForUsesOutsideLoop(), llvm::InstrForest::InstrForest(), llvm::LiveVariables::instructionChanged(), llvm::isCriticalEdge(), llvm::Interval::isLoop(), isOnlyADirectCall(), isOnlyUsedByUnorderedComparisons(), isPathTransparentTo(), isSafeToLoadUnconditionally(), llvm::MSchedGraphNode::isSuccessor(), llvm::SchedPriorities::issuedReadyNodeAt(), llvm::LiveInterval::join(), LinkFunctionBodies(), LinkFunctionBody(), LinkFunctionProtos(), LinkGlobalInits(), LinkGlobals(), llvm::LinkInArchive(), llvm::LinkItems(), llvm::LinkLibraries(), llvm::LinkModules(), LoadNeedsSignExtend(), llvm::Mangler::makeNameProper(), llvm::Mangler::Mangler(), MarkAliveBlocks(), llvm::DSGraph::markIncompleteNodes(), llvm::LiveVariables::MarkVirtRegAliveInBlock(), llvm::DSGraph::maskNodeTypes(), llvm::ReachabilityCloner::merge(), llvm::DSGraph::mergeInGraph(), PerModuleInfo::ModuleDone(), operator<<(), llvm::operator<<(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), cl::ParseCommandLineOptions(), llvm::BytecodeReader::ParseConstantValue(), llvm::BytecodeReader::ParseFunctionBody(), llvm::BytecodeReader::ParseSymbolTable(), PathExistsToClonedNode(), llvm::TypeMap< ValType, TypeClass >::print(), llvm::ScalarEvolution::print(), llvm::PgmDependenceGraph::print(), llvm::MSSchedule::print(), llvm::MemoryDepAnalysis::print(), llvm::LoopInfo::print(), llvm::Loop::print(), llvm::LiveIntervals::print(), llvm::Interval::print(), llvm::FindUsedTypes::print(), llvm::FindUnsafePointerTypes::print(), llvm::DominanceFrontierBase::print(), llvm::DominatorSetBase::print(), llvm::ImmediateDominatorsBase::print(), llvm::CallGraph::print(), llvm::CallGraphNode::print(), llvm::BitSetVector::print(), llvm::AliasSetTracker::print(), llvm::AliasSet::print(), llvm::PrintBytecodeAnalysis(), printCollection(), PrintDomTree(), PrintLoopInfo(), PrintMap(), llvm::printSet(), llvm::Type::PromoteAbstractToConcrete(), llvm::RegisterPassBase::registerPass(), llvm::MemoryDepAnalysis::releaseMemory(), llvm::LoopInfo::releaseMemory(), llvm::LocalDataStructures::releaseMemory(), llvm::IPModRef::releaseMemory(), llvm::FunctionLiveVarInfo::releaseMemory(), llvm::BUDataStructures::releaseMemory(), llvm::TDDataStructures::releaseMyMemory(), llvm::RemapInstruction(), RemapInstruction(), llvm::DSGraph::removeDeadNodes(), llvm::DSGraph::removeTriviallyDeadNodes(), llvm::Function::renameLocalSymbols(), llvm::User::replaceUsesOfWith(), RequiresFPRegKill(), llvm::DominatorTreeBase::reset(), ResolveDefinitions(), llvm::PeepholeOpts::runOnBasicBlock(), llvm::UnifyFunctionExitNodes::runOnFunction(), llvm::PostDominatorSet::runOnFunction(), llvm::BasicBlockPass::runOnFunction(), llvm::ModuloSchedulingPass::runOnFunction(), llvm::MemoryDepAnalysis::runOnFunction(), llvm::DominatorSet::runOnFunction(), llvm::ImmediateDominators::runOnFunction(), llvm::SparcV9CodeEmitter::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::TDDataStructures::runOnModule(), llvm::FunctionPass::runOnModule(), llvm::LocalDataStructures::runOnModule(), llvm::FindUsedTypes::runOnModule(), llvm::FindUnsafePointerTypes::runOnModule(), llvm::CompleteBUDataStructures::runOnModule(), llvm::CallGraphSCCPass::runOnModule(), llvm::CallGraph::runOnModule(), llvm::BUDataStructures::runOnModule(), llvm::Inliner::runOnSCC(), llvm::PassManagerT< Function >::runOnUnit(), SafeToMergeTerminators(), llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(), llvm::SelectionDAG::SelectionDAG(), llvm::set_intersect(), llvm::DepIterState::SetFirstSSADep(), llvm::SimplifyCFG(), llvm::BasicBlock::splitBasicBlock(), llvm::SplitCriticalEdge(), llvm::MachineInstr::substituteValue(), llvm::SparcV9RegInfo::suggestRegs4MethodArgs(), TypeHasCycleThroughItself(), llvm::RegisterPassBase::unregisterPass(), llvm::DSGraph::updateFromGlobalGraph(), llvm::ValueConvertibleToType(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::VirtRegMap::virtFolded(), llvm::GraphWriter< GraphType >::writeNodes(), llvm::Archive::writeSymbolTable(), llvm::Archive::writeToDisk(), llvm::Archive::~Archive(), llvm::DependenceGraph::~DependenceGraph(), llvm::DSGraph::~DSGraph(), llvm::sys::DynamicLibrary::~DynamicLibrary(), llvm::FunctionModRefInfo::~FunctionModRefInfo(), llvm::MSchedGraph::~MSchedGraph(), llvm::PassManagerT< Function >::~PassManagerT(), llvm::ProgramInfo::~ProgramInfo(), llvm::SchedGraphSet::~SchedGraphSet(), llvm::SchedulingManager::~SchedulingManager(), and llvm::Value::~Value().

RegisterAnalysis<DominanceFrontier> G("domfrontier","Dominance Frontier Construction", true) [static]
 

Referenced by llvm::SCEVMulExpr::get(), and GetGEPOperands().