LLVM  4.0.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::rdf::DataFlowGraph Struct Reference

#include <RDFGraph.h>

Classes

struct  DefStack
 

Public Types

typedef std::unordered_map
< RegisterId, DefStack
DefStackMap
 

Public Member Functions

 DataFlowGraph (MachineFunction &mf, const TargetInstrInfo &tii, const TargetRegisterInfo &tri, const MachineDominatorTree &mdt, const MachineDominanceFrontier &mdf, const TargetOperandInfo &toi)
 
NodeBaseptr (NodeId N) const
 
template<typename T >
T ptr (NodeId N) const
 
NodeId id (const NodeBase *P) const
 
template<typename T >
NodeAddr< Taddr (NodeId N) const
 
NodeAddr< FuncNode * > getFunc () const
 
MachineFunctiongetMF () const
 
const TargetInstrInfogetTII () const
 
const TargetRegisterInfogetTRI () const
 
const MachineDominatorTreegetDT () const
 
const MachineDominanceFrontiergetDF () const
 
void build (unsigned Options=BuildOptions::None)
 
void pushDefs (NodeAddr< InstrNode * > IA, DefStackMap &DM)
 
void markBlock (NodeId B, DefStackMap &DefM)
 
void releaseBlock (NodeId B, DefStackMap &DefM)
 
PackedRegisterRef pack (RegisterRef RR)
 
PackedRegisterRef pack (RegisterRef RR) const
 
RegisterRef unpack (PackedRegisterRef PR) const
 
RegisterRef makeRegRef (unsigned Reg, unsigned Sub) const
 
RegisterRef normalizeRef (RegisterRef RR) const
 
RegisterRef restrictRef (RegisterRef AR, RegisterRef BR) const
 
NodeAddr< RefNode * > getNextRelated (NodeAddr< InstrNode * > IA, NodeAddr< RefNode * > RA) const
 
NodeAddr< RefNode * > getNextImp (NodeAddr< InstrNode * > IA, NodeAddr< RefNode * > RA, bool Create)
 
NodeAddr< RefNode * > getNextImp (NodeAddr< InstrNode * > IA, NodeAddr< RefNode * > RA) const
 
NodeAddr< RefNode * > getNextShadow (NodeAddr< InstrNode * > IA, NodeAddr< RefNode * > RA, bool Create)
 
NodeAddr< RefNode * > getNextShadow (NodeAddr< InstrNode * > IA, NodeAddr< RefNode * > RA) const
 
NodeList getRelatedRefs (NodeAddr< InstrNode * > IA, NodeAddr< RefNode * > RA) const
 
void unlinkUse (NodeAddr< UseNode * > UA, bool RemoveFromOwner)
 
void unlinkDef (NodeAddr< DefNode * > DA, bool RemoveFromOwner)
 
bool alias (RegisterRef RA, RegisterRef RB) const
 

Static Public Member Functions

template<uint16_t Kind>
static bool IsRef (const NodeAddr< NodeBase * > BA)
 
template<uint16_t Kind>
static bool IsCode (const NodeAddr< NodeBase * > BA)
 
static bool IsDef (const NodeAddr< NodeBase * > BA)
 
static bool IsUse (const NodeAddr< NodeBase * > BA)
 
static bool IsPhi (const NodeAddr< NodeBase * > BA)
 
static bool IsPreservingDef (const NodeAddr< DefNode * > DA)
 

Detailed Description

Definition at line 744 of file RDFGraph.h.

Member Typedef Documentation

Definition at line 828 of file RDFGraph.h.

Constructor & Destructor Documentation

DataFlowGraph::DataFlowGraph ( MachineFunction mf,
const TargetInstrInfo tii,
const TargetRegisterInfo tri,
const MachineDominatorTree mdt,
const MachineDominanceFrontier mdf,
const TargetOperandInfo toi 
)

Definition at line 764 of file RDFGraph.cpp.

Member Function Documentation

template<typename T >
NodeAddr<T> llvm::rdf::DataFlowGraph::addr ( NodeId  N) const
inline
bool DataFlowGraph::alias ( RegisterRef  RA,
RegisterRef  RB 
) const
void DataFlowGraph::build ( unsigned  Options = BuildOptions::None)
const MachineDominanceFrontier& llvm::rdf::DataFlowGraph::getDF ( ) const
inline

Definition at line 765 of file RDFGraph.h.

const MachineDominatorTree& llvm::rdf::DataFlowGraph::getDT ( ) const
inline

Definition at line 764 of file RDFGraph.h.

NodeAddr<FuncNode*> llvm::rdf::DataFlowGraph::getFunc ( ) const
inline
MachineFunction& llvm::rdf::DataFlowGraph::getMF ( ) const
inline
NodeAddr<RefNode*> llvm::rdf::DataFlowGraph::getNextImp ( NodeAddr< InstrNode * >  IA,
NodeAddr< RefNode * >  RA,
bool  Create 
)
NodeAddr<RefNode*> llvm::rdf::DataFlowGraph::getNextImp ( NodeAddr< InstrNode * >  IA,
NodeAddr< RefNode * >  RA 
) const
NodeAddr< RefNode * > DataFlowGraph::getNextRelated ( NodeAddr< InstrNode * >  IA,
NodeAddr< RefNode * >  RA 
) const
NodeAddr< RefNode * > DataFlowGraph::getNextShadow ( NodeAddr< InstrNode * >  IA,
NodeAddr< RefNode * >  RA,
bool  Create 
)
NodeAddr< RefNode * > DataFlowGraph::getNextShadow ( NodeAddr< InstrNode * >  IA,
NodeAddr< RefNode * >  RA 
) const
NodeList DataFlowGraph::getRelatedRefs ( NodeAddr< InstrNode * >  IA,
NodeAddr< RefNode * >  RA 
) const
const TargetInstrInfo& llvm::rdf::DataFlowGraph::getTII ( ) const
inline

Definition at line 762 of file RDFGraph.h.

const TargetRegisterInfo& llvm::rdf::DataFlowGraph::getTRI ( ) const
inline
NodeId DataFlowGraph::id ( const NodeBase P) const

Definition at line 894 of file RDFGraph.cpp.

Referenced by llvm::rdf::CodeNode::addMember().

template<uint16_t Kind>
static bool llvm::rdf::DataFlowGraph::IsCode ( const NodeAddr< NodeBase * >  BA)
inlinestatic
static bool llvm::rdf::DataFlowGraph::IsDef ( const NodeAddr< NodeBase * >  BA)
inlinestatic
static bool llvm::rdf::DataFlowGraph::IsPhi ( const NodeAddr< NodeBase * >  BA)
inlinestatic
static bool llvm::rdf::DataFlowGraph::IsPreservingDef ( const NodeAddr< DefNode * >  DA)
inlinestatic
template<uint16_t Kind>
static bool llvm::rdf::DataFlowGraph::IsRef ( const NodeAddr< NodeBase * >  BA)
inlinestatic
static bool llvm::rdf::DataFlowGraph::IsUse ( const NodeAddr< NodeBase * >  BA)
inlinestatic
RegisterRef DataFlowGraph::makeRegRef ( unsigned  Reg,
unsigned  Sub 
) const
void DataFlowGraph::markBlock ( NodeId  B,
DefStackMap DefM 
)

Definition at line 1115 of file RDFGraph.cpp.

References E, and I.

RegisterRef DataFlowGraph::normalizeRef ( RegisterRef  RR) const
PackedRegisterRef llvm::rdf::DataFlowGraph::pack ( RegisterRef  RR)
inline

Definition at line 835 of file RDFGraph.h.

References llvm::rdf::LaneMaskIndex::pack().

Referenced by llvm::rdf::RefNode::setRegRef().

PackedRegisterRef llvm::rdf::DataFlowGraph::pack ( RegisterRef  RR) const
inline

Definition at line 836 of file RDFGraph.h.

References llvm::rdf::LaneMaskIndex::pack().

NodeBase * DataFlowGraph::ptr ( NodeId  N) const

Definition at line 887 of file RDFGraph.cpp.

Referenced by ptr().

template<typename T >
T llvm::rdf::DataFlowGraph::ptr ( NodeId  N) const
inline

Definition at line 750 of file RDFGraph.h.

References ptr().

void DataFlowGraph::pushDefs ( NodeAddr< InstrNode * >  IA,
DefStackMap DM 
)
void DataFlowGraph::releaseBlock ( NodeId  B,
DefStackMap DefM 
)

Definition at line 1122 of file RDFGraph.cpp.

References E, and I.

RegisterRef DataFlowGraph::restrictRef ( RegisterRef  AR,
RegisterRef  BR 
) const
void llvm::rdf::DataFlowGraph::unlinkDef ( NodeAddr< DefNode * >  DA,
bool  RemoveFromOwner 
)
inline

Definition at line 862 of file RDFGraph.h.

Referenced by llvm::rdf::DeadCodeElimination::erase().

void llvm::rdf::DataFlowGraph::unlinkUse ( NodeAddr< UseNode * >  UA,
bool  RemoveFromOwner 
)
inline
RegisterRef llvm::rdf::DataFlowGraph::unpack ( PackedRegisterRef  PR) const
inline

Definition at line 837 of file RDFGraph.h.

References llvm::rdf::LaneMaskIndex::unpack().

Referenced by llvm::rdf::RefNode::getRegRef().


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