LLVM 23.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 = std::unordered_map<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, boolgetAllReachingDefsRec (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.
LiveMapTypegetLiveMap ()
const LiveMapTypegetLiveMap () const
const RefMapgetRealUses (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 55 of file RDFLiveness.h.

Member Typedef Documentation

◆ LiveMapType

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

References g().

Member Function Documentation

◆ computeLiveIns()

◆ computePhiInfo()

◆ getAllReachedUses() [1/2]

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

Definition at line 84 of file RDFLiveness.h.

References getAllReachedUses().

◆ getAllReachedUses() [2/2]

◆ getAllReachingDefs() [1/3]

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

Definition at line 71 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 76 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 95 of file RDFLiveness.h.

◆ getLiveMap() [2/2]

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

Definition at line 96 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 98 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(), and resetKills().

Referenced by resetKills().

◆ resetKills() [2/2]

◆ resetLiveIns()

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

Definition at line 895 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 109 of file RDFLiveness.h.

References T.


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