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

#include "llvm/CodeGen/RDFLiveness.h"

Public Types

using LiveMapType = RegisterAggrMap< MachineBasicBlock * >
 
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 55 of file RDFLiveness.h.

Member Typedef Documentation

◆ LiveMapType

Definition at line 57 of file RDFLiveness.h.

◆ NodeRef

Definition at line 58 of file RDFLiveness.h.

◆ NodeRefSet

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

Definition at line 59 of file RDFLiveness.h.

◆ RefMap

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

Definition at line 60 of file RDFLiveness.h.

Constructor & Destructor Documentation

◆ Liveness()

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

Definition at line 62 of file RDFLiveness.h.

Member Function Documentation

◆ computeLiveIns()

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

◆ computePhiInfo()

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

◆ getAllReachedUses() [1/2]

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

Definition at line 82 of file RDFLiveness.h.

References getAllReachedUses().

◆ getAllReachedUses() [2/2]

NodeSet llvm::rdf::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 70 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 75 of file RDFLiveness.h.

References getAllReachingDefs().

◆ getAllReachingDefs() [3/3]

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

◆ getAllReachingDefsRec()

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

Definition at line 304 of file RDFLiveness.cpp.

References MaxRecNest.

◆ getLiveMap() [1/2]

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

Definition at line 94 of file RDFLiveness.h.

◆ getLiveMap() [2/2]

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

Definition at line 95 of file RDFLiveness.h.

◆ getNearestAliasedRef()

NodeAddr< RefNode * > llvm::rdf::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 357 of file RDFLiveness.cpp.

References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::PhysicalRegisterInfo::alias(), B, llvm::rdf::NodeAttrs::Clobbering, 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 97 of file RDFLiveness.h.

References F, and P.

◆ resetKills() [1/2]

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

Definition at line 910 of file RDFLiveness.cpp.

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

Referenced by resetKills().

◆ resetKills() [2/2]

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

◆ resetLiveIns()

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

◆ trace()

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

Definition at line 108 of file RDFLiveness.h.

References T.


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