LLVM 17.0.0git
Classes | Public Types | Public Member Functions | List of all members
llvm::rdf::Liveness Struct Reference

#include "llvm/CodeGen/RDFLiveness.h"

Classes

struct  LiveMapType
 

Public Types

using NodeRef = detail::NodeRef
 
using NodeRefSet = std::unordered_set< NodeRef >
 
using RefMap = std::unordered_map< RegisterId, NodeRefSet >
 

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, boolgetAllReachingDefsRec (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.
 
LiveMapTypegetLiveMap ()
 
const LiveMapTypegetLiveMap () const
 
const RefMapgetRealUses (NodeId P) const
 
void computePhiInfo ()
 
void computeLiveIns ()
 
void resetLiveIns ()
 
void resetKills ()
 
void resetKills (MachineBasicBlock *B)
 
void trace (bool T)
 

Detailed Description

Definition at line 59 of file RDFLiveness.h.

Member Typedef Documentation

◆ NodeRef

Definition at line 75 of file RDFLiveness.h.

◆ NodeRefSet

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

Definition at line 76 of file RDFLiveness.h.

◆ RefMap

using llvm::rdf::Liveness::RefMap = std::unordered_map<RegisterId, NodeRefSet>

Definition at line 77 of file RDFLiveness.h.

Constructor & Destructor Documentation

◆ Liveness()

llvm::rdf::Liveness::Liveness ( MachineRegisterInfo mri,
const DataFlowGraph g 
)
inline

Definition at line 79 of file RDFLiveness.h.

Member Function Documentation

◆ computeLiveIns()

void Liveness::computeLiveIns ( )

◆ computePhiInfo()

void Liveness::computePhiInfo ( )

◆ getAllReachedUses() [1/2]

NodeSet llvm::rdf::Liveness::getAllReachedUses ( RegisterRef  RefRR,
NodeAddr< DefNode * >  DefA 
)
inline

Definition at line 98 of file RDFLiveness.h.

References getAllReachedUses().

◆ getAllReachedUses() [2/2]

NodeSet Liveness::getAllReachedUses ( RegisterRef  RefRR,
NodeAddr< DefNode * >  DefA,
const RegisterAggr DefRRs 
)

◆ getAllReachingDefs() [1/3]

NodeList llvm::rdf::Liveness::getAllReachingDefs ( NodeAddr< RefNode * >  RefA)
inline

Definition at line 86 of file RDFLiveness.h.

References llvm::rdf::NodeAddr< T >::Addr, and getAllReachingDefs().

◆ getAllReachingDefs() [2/3]

NodeList llvm::rdf::Liveness::getAllReachingDefs ( RegisterRef  RefRR,
NodeAddr< RefNode * >  RefA 
)
inline

Definition at line 91 of file RDFLiveness.h.

References getAllReachingDefs().

◆ getAllReachingDefs() [3/3]

NodeList Liveness::getAllReachingDefs ( RegisterRef  RefRR,
NodeAddr< RefNode * >  RefA,
bool  TopShadows,
bool  FullChain,
const RegisterAggr DefRRs 
)

◆ getAllReachingDefsRec()

std::pair< NodeSet, bool > Liveness::getAllReachingDefsRec ( RegisterRef  RefRR,
NodeAddr< RefNode * >  RefA,
NodeSet Visited,
const NodeSet Defs 
)

Definition at line 308 of file RDFLiveness.cpp.

References MaxRecNest.

◆ getLiveMap() [1/2]

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

Definition at line 108 of file RDFLiveness.h.

◆ getLiveMap() [2/2]

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

Definition at line 109 of file RDFLiveness.h.

◆ getNearestAliasedRef()

NodeAddr< RefNode * > Liveness::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.

Definition at line 360 of file RDFLiveness.cpp.

References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::PhysicalRegisterInfo::alias(), B, llvm::rdf::NodeAttrs::Clobbering, E, llvm::rdf::DataFlowGraph::findBlock(), llvm::MachineDominatorTree::getNode(), I, llvm::rdf::NodeAddr< T >::Id, llvm::rdf::DataFlowGraph::IsDef(), llvm::make_range(), and N.

◆ getRealUses()

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

Definition at line 111 of file RDFLiveness.h.

References F, and P.

◆ resetKills() [1/2]

void Liveness::resetKills ( )

Definition at line 904 of file RDFLiveness.cpp.

References B, llvm::rdf::DataFlowGraph::getMF(), and resetKills().

Referenced by resetKills().

◆ resetKills() [2/2]

void Liveness::resetKills ( MachineBasicBlock B)

◆ resetLiveIns()

void Liveness::resetLiveIns ( )

◆ trace()

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

Definition at line 122 of file RDFLiveness.h.

References T.


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