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 407 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] |
Referenced by AddOne(), DIVerifyVisitor::Apply(), DIDeserializeVisitor::Apply(), CastArg(), CastConstantPacked(), CastOperand(), CheckCondition(), CleanupConstantGlobalUsers(), Coerce(), llvm::X86InstrInfo::commuteInstruction(), llvm::TargetLowering::ComputeNumSignBits(), llvm::ConstantArray::ConstantArray(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), ConstantIsDead(), llvm::ConstantPacked::ConstantPacked(), llvm::ConstantRange::ConstantRange(), llvm::ConstantStruct::ConstantStruct(), llvm::ConvertConstantType< ConstantPacked, PackedType >::convert(), llvm::ConvertConstantType< ConstantStruct, StructType >::convert(), llvm::ConvertConstantType< ConstantArray, ArrayType >::convert(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::BinaryOperator::createNot(), llvm::doConstantPropagation(), llvm::X86IntelAsmPrinter::doFinalization(), llvm::X86SharedAsmPrinter::doFinalization(), dyn_castNegVal(), dyn_castNotVal(), llvm::DwarfWriter::EmitString(), EvaluateConstantChrecAtConstant(), EvaluateExpression(), EvaluateFunction(), llvm::SwitchInst::findCaseValue(), FoldCondBranchOnPHI(), GatherConstantSetEQs(), GatherConstantSetNEs(), llvm::ConstantPoolSDNode::get(), llvm::ConstantPacked::get(), llvm::ConstantArray::get(), llvm::ConstantExpr::getCast(), llvm::SelectionDAG::getConstantPool(), llvm::MachineConstantPool::getConstantPoolIndex(), llvm::ExecutionEngine::getConstantValue(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getGetElementPtrTy(), getGlobalVariablesUsing(), llvm::SCEVUnknown::getIntegerSCEV(), getLLVMName(), llvm::AliasAnalysis::getModRefInfo(), llvm::ConstantExpr::getNeg(), llvm::SelectionDAG::getNode(), llvm::ConstantExpr::getNot(), llvm::ConstantExpr::getPtrPtrFromArrayPtr(), llvm::ConstantExpr::getSelect(), llvm::ConstantExpr::getSelectTy(), llvm::ConstantExpr::getSignExtend(), llvm::Constant::getStringValue(), llvm::SelectionDAG::getTargetConstantPool(), llvm::SelectionDAGLowering::getValue(), llvm::ConstantExpr::getZeroExtend(), llvm::HexIntToVal(), llvm::SCEVExpander::InsertCastOfTo(), isBLACompatibleAddress(), isMaxValueMinusOne(), isMinValuePlusOne(), isPositive(), isSimpleEnoughPointerToCommit(), isStringValue(), LowerConstantPool(), llvm::AlphaTargetLowering::LowerOperation(), LowerSETCC(), LT(), LTE(), llvm::MapValue(), OptimizeAwayTrappingUsesOfValue(), OptimizeConstantExpr(), llvm::BytecodeReader::ParseConstantPool(), llvm::BytecodeReader::ParseInstruction(), llvm::BytecodeReader::ParseStringConstants(), printAsCString(), PrintEscapedString(), RemoveDeadConstant(), removeDeadConstantUsers(), llvm::JIT::runFunction(), llvm::SelectInst::SelectInst(), llvm::BlockDesc::setContext(), llvm::GlobalDesc::setContext(), llvm::VariableDesc::setContext(), llvm::TypeDesc::setContext(), llvm::Constant::setOperand(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), SolveQuadraticEquation(), llvm::DbgInfoIntrinsic::StripCast(), SubOne(), llvm::DebugInfoDesc::TagFromGlobal(), llvm::Value::uncheckedReplaceAllUsesWith(), llvm::DebugInfoDesc::VersionFromGlobal(), and llvm::SelectionDAGLowering::visitSwitch().
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(), AddReachableCodeToWorklist(), AddressMightEscape(), AllCalleesPassInValidPointerForArgument(), AllUsersAreLoads(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AnalyzeGlobal(), ApproximateLoopSize(), llvm::DSGraph::AssertAuxCallNodesInGraph(), llvm::DSGraph::AssertCallNodesInGraph(), llvm::DSGraph::AssertGraphOK(), BlockIsSimpleEnoughToThreadThrough(), BuildGlobalECs(), llvm::ScheduleDAG::BuildSchedUnits(), CalcRegionExitBlocks(), calcTypeName(), llvm::PostETForest::calculate(), llvm::ETForest::calculate(), CalculateDepths(), CalculateHeights(), CallersAllIgnoreReturnValue(), llvm::Interpreter::callFunction(), llvm::AliasAnalysis::canInstructionRangeModify(), CanPropagatePredecessorsForPHIs(), CanReachAliveNodes(), ChangeCalleesToFastCall(), CheckAllGraphs(), CheckForEscapingAllocas(), CheckVarargs(), llvm::DIEBlock::classof(), llvm::DIEntry::classof(), CleanupConstantGlobalUsers(), llvm::Archive::cleanUpMemory(), llvm::TypeMap< ValType, TypeClass >::clear(), llvm::Type::clearAllTypeMaps(), llvm::Constant::clearAllValueMaps(), llvm::CloneAndPruneFunctionInto(), llvm::CloneFunction(), llvm::CloneFunctionInto(), llvm::DSGraph::cloneInto(), CloneLoop(), llvm::CloneModule(), llvm::CloneTrace(), llvm::StableBasicBlockNumbering::compute(), llvm::DSGraph::computeCalleeCallerMapping(), llvm::DSGraph::computeGToGGMapping(), ComputeTopDownOrdering(), ConcreteTypeHasCycleThrough(), llvm::ConstantArray::ConstantArray(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), ConstantIsDead(), llvm::ConstantPacked::ConstantPacked(), ConstantPropUsersOf(), llvm::ConstantStruct::ConstantStruct(), llvm::TargetRegisterClass::contains(), llvm::AliasSetTracker::containsPointer(), ConvertOperandToType(), CountCodeReductionForAlloca(), CountCodeReductionForConstant(), llvm::CallGraph::destroy(), llvm::X86IntelAsmPrinter::doFinalization(), llvm::X86SharedAsmPrinter::doFinalization(), llvm::Inliner::doFinalization(), llvm::ELFWriter::doFinalization(), llvm::X86IntelAsmPrinter::doInitialization(), llvm::Module::dropAllReferences(), llvm::Function::dropAllReferences(), llvm::BasicBlock::dropAllReferences(), llvm::SelectionDAG::dump(), llvm::SUnit::dumpAll(), llvm::PassManagerT< llvm::BBTraits >::dumpPassStructure(), EliminateUsesOfECGlobals(), llvm::AsmPrinter::EmitGlobalConstant(), llvm::ExecutionEngine::emitGlobals(), llvm::ScheduleDAG::EmitNode(), llvm::ScheduleDAG::EmitSchedule(), 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(), getDefUsePredecessor(), llvm::DSGraph::getDSCallSiteForCallSite(), llvm::ProfileInfoLoader::getEdgeCounts(), llvm::Loop::getExitBlocks(), llvm::DSGraph::getFunctionArgumentsForCall(), llvm::ProfileInfoLoader::getFunctionCounts(), llvm::ExecutionEngine::getGlobalValueAtAddress(), getGlobalVariablesUsing(), llvm::Module::getNamedFunction(), llvm::Module::getNamedGlobal(), getNextStopPoint(), llvm::SelectionDAG::getNode(), llvm::Loop::getNumBackEdges(), llvm::EquivalenceClasses< llvm::GlobalValue * >::getNumClasses(), llvm::SlotCalculator::getPlane(), getRegClass(), llvm::TargetLowering::getRegForInlineAsmConstraint(), llvm::SelectionDAGLowering::GetRegistersForValue(), llvm::BasicBlock::getSinglePredecessor(), getSingleUnscheduledPred(), llvm::SourceFunctionInfo::getSourceLocation(), getSubElementHash(), getTypeDescription(), llvm::Mangler::getTypeID(), HandleInlinedInvoke(), llvm::LiveVariables::HandleVirtRegUse(), HandleVRSaveUpdate(), 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::LiveVariables::instructionChanged(), llvm::IntervalPartition::IntervalPartition(), isAllocatableRegister(), llvm::Archive::isBytecodeArchive(), llvm::isCriticalEdge(), isFloater(), llvm::Loop::isLCSSAForm(), llvm::Interval::isLoop(), isOnlyADirectCall(), llvm::SDNode::isOnlyUse(), isOnlyUsedInEntryBlock(), IsOnlyUsedInEqualsZeroComparison(), isPathTransparentTo(), isReachable(), isSafeToLoadUnconditionally(), isSimpleFloaterUse(), isTrivialLoopExitBlockHelper(), IsTrivialUnswitchCondition(), isUsedOutsideOfDefiningBlock(), llvm::LiveInterval::join(), LinkFunctionBodies(), LinkFunctionBody(), LinkFunctionProtos(), LinkGlobalInits(), LinkGlobals(), llvm::Linker::LinkInArchive(), llvm::Linker::LinkInItems(), llvm::Linker::LinkInLibraries(), llvm::Linker::LinkModules(), llvm::TargetLowering::LowerArguments(), llvm::IA64TargetLowering::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(), OnlyCalledDirectly(), operator<<(), llvm::operator<<(), llvm::SmallVector< T, N >::operator=(), llvm::EquivalenceClasses< llvm::GlobalValue * >::operator=(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeGEPExpression(), OptimizeNoopCopyExpression(), 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::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::Type::PromoteAbstractToConcrete(), llvm::TypeMap< ValType, TypeClass >::RefineAbstractType(), llvm::RegisterPassBase::registerPass(), llvm::LoopInfo::releaseMemory(), llvm::LocalDataStructures::releaseMemory(), llvm::TDDataStructures::releaseMyMemory(), llvm::BUDataStructures::releaseMyMemory(), llvm::RemapInstruction(), RemapInstruction(), llvm::SelectionDAG::RemoveDeadNodes(), llvm::DSGraph::removeDeadNodes(), removeIdenticalCalls(), llvm::DSGraph::removeTriviallyDeadNodes(), RemoveVRSaveCode(), 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::UnifyFunctionExitNodes::runOnFunction(), llvm::SelectionDAGISel::runOnFunction(), llvm::PostDominatorSet::runOnFunction(), llvm::ImmediatePostDominators::runOnFunction(), llvm::BasicBlockPass::runOnFunction(), llvm::IntervalPartition::runOnFunction(), llvm::DominatorSet::runOnFunction(), llvm::ImmediateDominators::runOnFunction(), llvm::X86IntelAsmPrinter::runOnMachineFunction(), llvm::X86ATTAsmPrinter::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(), SumOfUnscheduledPredsOfSuccs(), llvm::TargetNameParser::targetRegistered(), TryToSinkInstruction(), llvm::TypeMapBase::TypeBecameConcrete(), TypeContains(), TypeHasCycleThroughItself(), llvm::RegisterPassBase::unregisterPass(), UpdateCallGraphAfterInlining(), llvm::ETForestBase::updateDFSNumbers(), llvm::DSGraph::updateFromGlobalGraph(), 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::PassManagerT< llvm::BBTraits >::~PassManagerT(), llvm::ProgramInfo::~ProgramInfo(), and llvm::Value::~Value().
RegisterAnalysis<DominanceFrontier> G("domfrontier","Dominance Frontier Construction", true) [static] |