struct Liveness
Declaration
struct Liveness { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:59
Member Variables
- private const llvm::rdf::DataFlowGraph& DFG
- private const llvm::TargetRegisterInfo& TRI
- private const llvm::rdf::PhysicalRegisterInfo& PRI
- private const llvm::MachineDominatorTree& MDT
- private const llvm::MachineDominanceFrontier& MDF
- private llvm::rdf::Liveness::LiveMapType LiveMap
- private const llvm::rdf::Liveness::RefMap Empty
- private const llvm::rdf::RegisterAggr NoRegs
- private bool Trace = false
- private DenseMap<llvm::rdf::NodeId, llvm::MachineBasicBlock*> NBMap
- private DenseMap<llvm::rdf::NodeId, llvm::rdf::Liveness::RefMap> RealUseMap
- private std::map<MachineBasicBlock*, std::set<MachineBasicBlock*>> IIDF
- private std::map<MachineBasicBlock*, RefMap> PhiLON
- private std::map<MachineBasicBlock*, RefMap> PhiLOX
Method Overview
- public Liveness(llvm::MachineRegisterInfo & mri, const llvm::rdf::DataFlowGraph & g)
- public void computeLiveIns()
- public void computePhiInfo()
- private void emptify(llvm::rdf::Liveness::RefMap & M)
- public llvm::rdf::NodeSet getAllReachedUses(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::DefNode *> DefA, const llvm::rdf::RegisterAggr & DefRRs)
- public llvm::rdf::NodeSet getAllReachedUses(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::DefNode *> DefA)
- public llvm::rdf::NodeList getAllReachingDefs(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::RefNode *> RefA, bool TopShadows, bool FullChain, const llvm::rdf::RegisterAggr & DefRRs)
- public llvm::rdf::NodeList getAllReachingDefs(NodeAddr<llvm::rdf::RefNode *> RefA)
- public llvm::rdf::NodeList getAllReachingDefs(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::RefNode *> RefA)
- public std::pair<NodeSet, bool> getAllReachingDefsRec(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::RefNode *> RefA, llvm::rdf::NodeSet & Visited, const llvm::rdf::NodeSet & Defs)
- private std::pair<NodeSet, bool> getAllReachingDefsRecImpl(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::RefNode *> RefA, llvm::rdf::NodeSet & Visited, const llvm::rdf::NodeSet & Defs, unsigned int Nest, unsigned int MaxNest)
- private llvm::MachineBasicBlock * getBlockWithRef(llvm::rdf::NodeId RN) const
- public const llvm::rdf::Liveness::LiveMapType & getLiveMap() const
- public llvm::rdf::Liveness::LiveMapType & getLiveMap()
- public NodeAddr<llvm::rdf::RefNode *> getNearestAliasedRef(llvm::rdf::RegisterRef RefRR, NodeAddr<llvm::rdf::InstrNode *> IA)
- public const llvm::rdf::Liveness::RefMap & getRealUses(llvm::rdf::NodeId P) const
- public void resetKills()
- public void resetKills(llvm::MachineBasicBlock * B)
- public void resetLiveIns()
- public void trace(bool T)
- private void traverse(llvm::MachineBasicBlock * B, llvm::rdf::Liveness::RefMap & LiveIn)
Methods
¶Liveness(llvm::MachineRegisterInfo& mri,
const llvm::rdf::DataFlowGraph& g)
Liveness(llvm::MachineRegisterInfo& mri,
const llvm::rdf::DataFlowGraph& g)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:79
Parameters
- llvm::MachineRegisterInfo& mri
- const llvm::rdf::DataFlowGraph& g
¶void computeLiveIns()
void computeLiveIns()
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:117
¶void computePhiInfo()
void computePhiInfo()
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:116
¶void emptify(llvm::rdf::Liveness::RefMap& M)
void emptify(llvm::rdf::Liveness::RefMap& M)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:162
Parameters
- llvm::rdf::Liveness::RefMap& M
¶llvm::rdf::NodeSet getAllReachedUses(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::DefNode*> DefA,
const llvm::rdf::RegisterAggr& DefRRs)
llvm::rdf::NodeSet getAllReachedUses(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::DefNode*> DefA,
const llvm::rdf::RegisterAggr& DefRRs)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:95
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::DefNode*> DefA
- const llvm::rdf::RegisterAggr& DefRRs
¶llvm::rdf::NodeSet getAllReachedUses(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::DefNode*> DefA)
llvm::rdf::NodeSet getAllReachedUses(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::DefNode*> DefA)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:98
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::DefNode*> DefA
¶llvm::rdf::NodeList getAllReachingDefs(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA,
bool TopShadows,
bool FullChain,
const llvm::rdf::RegisterAggr& DefRRs)
llvm::rdf::NodeList getAllReachingDefs(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA,
bool TopShadows,
bool FullChain,
const llvm::rdf::RegisterAggr& DefRRs)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:83
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::RefNode*> RefA
- bool TopShadows
- bool FullChain
- const llvm::rdf::RegisterAggr& DefRRs
¶llvm::rdf::NodeList getAllReachingDefs(
NodeAddr<llvm::rdf::RefNode*> RefA)
llvm::rdf::NodeList getAllReachingDefs(
NodeAddr<llvm::rdf::RefNode*> RefA)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:86
Parameters
- NodeAddr<llvm::rdf::RefNode*> RefA
¶llvm::rdf::NodeList getAllReachingDefs(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA)
llvm::rdf::NodeList getAllReachingDefs(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:91
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::RefNode*> RefA
¶std::pair<NodeSet, bool> getAllReachingDefsRec(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA,
llvm::rdf::NodeSet& Visited,
const llvm::rdf::NodeSet& Defs)
std::pair<NodeSet, bool> getAllReachingDefsRec(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA,
llvm::rdf::NodeSet& Visited,
const llvm::rdf::NodeSet& Defs)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:102
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::RefNode*> RefA
- llvm::rdf::NodeSet& Visited
- const llvm::rdf::NodeSet& Defs
¶std::pair<NodeSet, bool>
getAllReachingDefsRecImpl(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA,
llvm::rdf::NodeSet& Visited,
const llvm::rdf::NodeSet& Defs,
unsigned int Nest,
unsigned int MaxNest)
std::pair<NodeSet, bool>
getAllReachingDefsRecImpl(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::RefNode*> RefA,
llvm::rdf::NodeSet& Visited,
const llvm::rdf::NodeSet& Defs,
unsigned int Nest,
unsigned int MaxNest)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:164
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::RefNode*> RefA
- llvm::rdf::NodeSet& Visited
- const llvm::rdf::NodeSet& Defs
- unsigned int Nest
- unsigned int MaxNest
¶llvm::MachineBasicBlock* getBlockWithRef(
llvm::rdf::NodeId RN) const
llvm::MachineBasicBlock* getBlockWithRef(
llvm::rdf::NodeId RN) const
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:160
Parameters
- llvm::rdf::NodeId RN
¶const llvm::rdf::Liveness::LiveMapType&
getLiveMap() const
const llvm::rdf::Liveness::LiveMapType&
getLiveMap() const
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:109
¶llvm::rdf::Liveness::LiveMapType& getLiveMap()
llvm::rdf::Liveness::LiveMapType& getLiveMap()
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:108
¶NodeAddr<llvm::rdf::RefNode*>
getNearestAliasedRef(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::InstrNode*> IA)
NodeAddr<llvm::rdf::RefNode*>
getNearestAliasedRef(
llvm::rdf::RegisterRef RefRR,
NodeAddr<llvm::rdf::InstrNode*> IA)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:105
Parameters
- llvm::rdf::RegisterRef RefRR
- NodeAddr<llvm::rdf::InstrNode*> IA
¶const llvm::rdf::Liveness::RefMap& getRealUses(
llvm::rdf::NodeId P) const
const llvm::rdf::Liveness::RefMap& getRealUses(
llvm::rdf::NodeId P) const
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:111
Parameters
- llvm::rdf::NodeId P
¶void resetKills()
void resetKills()
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:119
¶void resetKills(llvm::MachineBasicBlock* B)
void resetKills(llvm::MachineBasicBlock* B)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:120
Parameters
¶void resetLiveIns()
void resetLiveIns()
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:118
¶void trace(bool T)
void trace(bool T)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:122
Parameters
- bool T
¶void traverse(llvm::MachineBasicBlock* B,
llvm::rdf::Liveness::RefMap& LiveIn)
void traverse(llvm::MachineBasicBlock* B,
llvm::rdf::Liveness::RefMap& LiveIn)
Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:161
Parameters
- llvm::MachineBasicBlock* B
- llvm::rdf::Liveness::RefMap& LiveIn