LLVM: llvm::rdf::Liveness Struct Reference (original) (raw)

#include "[llvm/CodeGen/RDFLiveness.h](RDFLiveness%5F8h%5Fsource.html)"

Public Member Functions
Liveness (MachineRegisterInfo &mri, const DataFlowGraph &g)
NodeList getAllReachingDefs (RegisterRef RefRR, NodeAddr< RefNode * > RefA, bool TopShadows, bool FullChain, const RegisterAggr &DefRRs)
NodeList getAllReachingDefs (NodeAddr< RefNode * > RefA)
NodeList getAllReachingDefs (RegisterRef RefRR, NodeAddr< RefNode * > RefA)
NodeSet getAllReachedUses (RegisterRef RefRR, NodeAddr< DefNode * > DefA, const RegisterAggr &DefRRs)
NodeSet getAllReachedUses (RegisterRef RefRR, NodeAddr< DefNode * > DefA)
std::pair< NodeSet, bool > getAllReachingDefsRec (RegisterRef RefRR, NodeAddr< RefNode * > RefA, NodeSet &Visited, const NodeSet &Defs)
NodeAddr< RefNode * > getNearestAliasedRef (RegisterRef RefRR, NodeAddr< InstrNode * > IA)
Find the nearest ref node aliased to RefRR, going upwards in the data flow, starting from the instruction immediately preceding Inst.
LiveMapType & getLiveMap ()
const LiveMapType & getLiveMap () const
const RefMap & getRealUses (NodeId P) const
void computePhiInfo ()
void computeLiveIns ()
void resetLiveIns ()
void resetKills ()
void resetKills (MachineBasicBlock *B)
void trace (bool T)

Definition at line 55 of file RDFLiveness.h.

LiveMapType

NodeRef

NodeRefSet

using llvm::rdf::Liveness::NodeRefSet = std::unordered_set<NodeRef>

RefMap

computeLiveIns()

void llvm::rdf::Liveness::computeLiveIns ( )

Definition at line 739 of file RDFLiveness.cpp.

References llvm::rdf::NodeAddr< T >::Addr, B(), llvm::SetVector< T, Vector, Set, N >::begin(), computePhiInfo(), D(), llvm::dbgs(), llvm::SetVector< T, Vector, Set, N >::end(), llvm::from_range, llvm::MachineFunction::front(), getAllReachingDefs(), I, llvm::rdf::RegisterRef::Id, llvm::MachineFunction::insert(), llvm::SetVector< T, Vector, Set, N >::insert(), llvm::SetVector< T, Vector, Set, N >::insert_range(), P, llvm::rdf::NodeAttrs::Phi, llvm::rdf::Print(), llvm::printMBBReference(), RA, llvm::SetVector< T, Vector, Set, N >::size(), llvm::sort(), T, and llvm::rdf::NodeAttrs::Use.

computePhiInfo()

void llvm::rdf::Liveness::computePhiInfo ( )

Definition at line 460 of file RDFLiveness.cpp.

References A(), llvm::rdf::NodeAddr< T >::Addr, llvm::append_range(), assert(), Changed, llvm::rdf::RegisterAggr::clearIn(), D(), llvm::dbgs(), llvm::rdf::NodeAttrs::Dead, llvm::rdf::NodeAttrs::Def, F, getAllReachingDefs(), llvm::rdf::RegisterAggr::hasAliasOf(), llvm::rdf::RegisterAggr::hasCoverOf(), I, llvm::rdf::NodeAddr< T >::Id, llvm::rdf::RegisterAggr::insert(), llvm::SetVector< T, Vector, Set, N >::insert(), llvm::rdf::RegisterAggr::intersectWith(), IsDead, llvm::rdf::RegisterRef::Mask, P, llvm::rdf::NodeAttrs::Phi, llvm::rdf::NodeAttrs::PhiRef, llvm::rdf::Print(), llvm::SetVector< T, Vector, Set, N >::size(), T, llvm::rdf::NodeAttrs::Undef, llvm::rdf::NodeAttrs::Use, and Uses.

Referenced by computeLiveIns().

getAllReachedUses() [1/2]

getAllReachedUses() [2/2]

Definition at line 414 of file RDFLiveness.cpp.

References llvm::rdf::NodeAddr< T >::Addr, D(), llvm::rdf::NodeAttrs::Dead, getAllReachedUses(), llvm::rdf::RefNode::getSibling(), llvm::rdf::RegisterAggr::hasCoverOf(), llvm::rdf::RegisterAggr::insert(), IsDead, T, llvm::rdf::NodeAttrs::Undef, and Uses.

Referenced by getAllReachedUses(), and getAllReachedUses().

getAllReachingDefs() [1/3]

getAllReachingDefs() [2/3]

getAllReachingDefs() [3/3]

Definition at line 104 of file RDFLiveness.cpp.

References A(), llvm::rdf::NodeAddr< T >::Addr, llvm::append_range(), assert(), B(), llvm::MachineBasicBlock::begin(), llvm::SmallSet< T, N, C >::count(), llvm::rdf::NodeAttrs::Dead, llvm::rdf::NodeAttrs::Def, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::MachineBasicBlock::end(), llvm::erase_if(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), llvm::rdf::RegisterAggr::hasCoverOf(), llvm::rdf::NodeAddr< T >::Id, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::rdf::RegisterAggr::insert(), llvm::SetVector< T, Vector, Set, N >::insert(), llvm::SmallSet< T, N, C >::insert(), llvm::rdf::RegisterAggr::isCoverOf(), llvm_unreachable, MBB, N, llvm::rdf::NodeAttrs::Phi, llvm::rdf::NodeAttrs::PhiRef, llvm::rdf::NodeAttrs::Preserving, llvm::reverse(), llvm::SetVector< T, Vector, Set, N >::size(), llvm::sort(), llvm::rdf::NodeAttrs::Stmt, T, and llvm::rdf::NodeAttrs::Undef.

Referenced by computeLiveIns(), computePhiInfo(), getAllReachingDefs(), and getAllReachingDefs().

getAllReachingDefsRec()

getLiveMap() [1/2]

LiveMapType & llvm::rdf::Liveness::getLiveMap ( ) inline

getLiveMap() [2/2]

const LiveMapType & llvm::rdf::Liveness::getLiveMap ( ) const inline

getNearestAliasedRef()

Find the nearest ref node aliased to RefRR, going upwards in the data flow, starting from the instruction immediately preceding Inst.

Definition at line 357 of file RDFLiveness.cpp.

References llvm::rdf::NodeAddr< T >::Addr, B(), llvm::rdf::NodeAttrs::Clobbering, I, llvm::rdf::NodeAddr< T >::Id, llvm::make_range(), N, llvm::SmallVectorTemplateCommon< T, typename >::rbegin(), llvm::SmallVectorTemplateCommon< T, typename >::rend(), and T.

getRealUses()

const RefMap & llvm::rdf::Liveness::getRealUses ( NodeId P) const inline

resetKills() [1/2]

void llvm::rdf::Liveness::resetKills ( )

resetKills() [2/2]

resetLiveIns()

void llvm::rdf::Liveness::resetLiveIns ( )

trace()

void llvm::rdf::Liveness::trace ( bool T) inline

The documentation for this struct was generated from the following files: