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)

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:79

Parameters

llvm::MachineRegisterInfo& mri
const llvm::rdf::DataFlowGraph& g

void computeLiveIns()

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:117

void computePhiInfo()

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:116

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)

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)

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)

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)

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)

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)

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)

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

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:160

Parameters

llvm::rdf::NodeId RN

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

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:109

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)

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

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:111

Parameters

llvm::rdf::NodeId P

void resetKills()

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:119

void resetKills(llvm::MachineBasicBlock* B)

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:120

Parameters

llvm::MachineBasicBlock* B

void resetLiveIns()

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:118

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)

Declared at: llvm/include/llvm/CodeGen/RDFLiveness.h:161

Parameters

llvm::MachineBasicBlock* B
llvm::rdf::Liveness::RefMap& LiveIn