LLVM 24.0.0git
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 = DenseMap<RegisterId, NodeRefSet>

Public Member Functions

 Liveness (MachineRegisterInfo &mri, const DataFlowGraph &g)
LLVM_ABI 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)
LLVM_ABI NodeSet getAllReachedUses (RegisterRef RefRR, NodeAddr< DefNode * > DefA, const RegisterAggr &DefRRs)
NodeSet getAllReachedUses (RegisterRef RefRR, NodeAddr< DefNode * > DefA)
LLVM_ABI std::pair< NodeSet, bool > getAllReachingDefsRec (RegisterRef RefRR, NodeAddr< RefNode * > RefA, NodeSet &Visited, const NodeSet &Defs)
LLVM_ABI 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
LLVM_ABI void computePhiInfo ()
LLVM_ABI void computeLiveIns ()
LLVM_ABI void resetLiveIns ()
LLVM_ABI void resetKills ()
LLVM_ABI void resetKills (MachineBasicBlock *B)
void trace (bool T)

Detailed Description

Definition at line 54 of file RDFLiveness.h.

Member Typedef Documentation

◆ LiveMapType

◆ NodeRef

Definition at line 57 of file RDFLiveness.h.

◆ NodeRefSet

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

Definition at line 58 of file RDFLiveness.h.

◆ RefMap

Constructor & Destructor Documentation

◆ Liveness()

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

Definition at line 61 of file RDFLiveness.h.

References g().

Member Function Documentation

◆ computeLiveIns()

◆ computePhiInfo()

◆ getAllReachedUses() [1/2]

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

Definition at line 83 of file RDFLiveness.h.

References getAllReachedUses().

◆ getAllReachedUses() [2/2]

◆ 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]

◆ 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, 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

Definition at line 97 of file RDFLiveness.h.

References F, and P.

◆ resetKills() [1/2]

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

Definition at line 911 of file RDFLiveness.cpp.

References B(), and resetKills().

Referenced by resetKills().

◆ resetKills() [2/2]

◆ resetLiveIns()

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

Definition at line 896 of file RDFLiveness.cpp.

References B(), I, llvm::rdf::RegisterAggr::refs(), and T.

◆ 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: