Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
llvm::rdf::DataFlowGraph Struct Reference

#include "llvm/CodeGen/RDFGraph.h"

Classes

struct  Config
struct  DefStack

Public Types

using DefStackMap = std::unordered_map<RegisterId, DefStack>

Public Member Functions

 DataFlowGraph (MachineFunction &mf, const TargetInstrInfo &tii, const TargetRegisterInfo &tri, const MachineDominatorTree &mdt, const MachineDominanceFrontier &mdf)
 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
Func getFunc () const
MachineFunctiongetMF () const
const TargetInstrInfogetTII () const
const TargetRegisterInfogetTRI () const
const PhysicalRegisterInfogetPRI () const
const MachineDominatorTreegetDT () const
const MachineDominanceFrontiergetDF () const
const RegisterAggrgetLiveIns () const
void build (const Config &config)
void build ()
void pushAllDefs (Instr 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 makeRegRef (const MachineOperand &Op) const
Ref getNextRelated (Instr IA, Ref RA) const
Ref getNextShadow (Instr IA, Ref RA, bool Create)
NodeList getRelatedRefs (Instr IA, Ref RA) const
Block findBlock (MachineBasicBlock *BB) const
void unlinkUse (Use UA, bool RemoveFromOwner)
void unlinkDef (Def DA, bool RemoveFromOwner)
bool isTracked (RegisterRef RR) const
bool hasUntrackedRef (Stmt S, bool IgnoreReserved=true) const

Static Public Member Functions

template<uint16_t Kind>
static bool IsRef (const Node BA)
template<uint16_t Kind>
static bool IsCode (const Node BA)
static bool IsDef (const Node BA)
static bool IsUse (const Node BA)
static bool IsPhi (const Node BA)
static bool IsPreservingDef (const Def DA)

Detailed Description

Definition at line 660 of file RDFGraph.h.

Member Typedef Documentation

◆ DefStackMap

Definition at line 772 of file RDFGraph.h.

Constructor & Destructor Documentation

◆ DataFlowGraph() [1/2]

llvm::rdf::DataFlowGraph::DataFlowGraph ( MachineFunction & mf,
const TargetInstrInfo & tii,
const TargetRegisterInfo & tri,
const MachineDominatorTree & mdt,
const MachineDominanceFrontier & mdf )

Definition at line 636 of file RDFGraph.cpp.

◆ DataFlowGraph() [2/2]

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

Definition at line 644 of file RDFGraph.cpp.

Member Function Documentation

◆ addr()

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

Definition at line 689 of file RDFGraph.h.

References N, and ptr().

◆ build() [1/2]

void llvm::rdf::DataFlowGraph::build ( )
inline

Definition at line 775 of file RDFGraph.h.

References build().

Referenced by build().

◆ build() [2/2]

◆ findBlock()

Block llvm::rdf::DataFlowGraph::findBlock ( MachineBasicBlock * BB) const
inline

Definition at line 799 of file RDFGraph.h.

Referenced by build().

◆ getDF()

const MachineDominanceFrontier & llvm::rdf::DataFlowGraph::getDF ( ) const
inline

Definition at line 699 of file RDFGraph.h.

◆ getDT()

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

Definition at line 698 of file RDFGraph.h.

◆ getFunc()

Func llvm::rdf::DataFlowGraph::getFunc ( ) const
inline

Definition at line 693 of file RDFGraph.h.

◆ getLiveIns()

const RegisterAggr & llvm::rdf::DataFlowGraph::getLiveIns ( ) const
inline

Definition at line 700 of file RDFGraph.h.

◆ getMF()

MachineFunction & llvm::rdf::DataFlowGraph::getMF ( ) const
inline

Definition at line 694 of file RDFGraph.h.

◆ getNextRelated()

Ref llvm::rdf::DataFlowGraph::getNextRelated ( Instr IA,
Ref RA ) const

◆ getNextShadow()

Ref llvm::rdf::DataFlowGraph::getNextShadow ( Instr IA,
Ref RA,
bool Create )

◆ getPRI()

const PhysicalRegisterInfo & llvm::rdf::DataFlowGraph::getPRI ( ) const
inline

Definition at line 697 of file RDFGraph.h.

Referenced by build(), getNextRelated(), isTracked(), and makeRegRef().

◆ getRelatedRefs()

NodeList llvm::rdf::DataFlowGraph::getRelatedRefs ( Instr IA,
Ref RA ) const

◆ getTII()

const TargetInstrInfo & llvm::rdf::DataFlowGraph::getTII ( ) const
inline

Definition at line 695 of file RDFGraph.h.

◆ getTRI()

const TargetRegisterInfo & llvm::rdf::DataFlowGraph::getTRI ( ) const
inline

Definition at line 696 of file RDFGraph.h.

Referenced by build().

◆ hasUntrackedRef()

◆ id()

NodeId llvm::rdf::DataFlowGraph::id ( const NodeBase * P) const

Definition at line 767 of file RDFGraph.cpp.

References P.

◆ IsCode()

template<uint16_t Kind>
bool llvm::rdf::DataFlowGraph::IsCode ( const Node BA)
inlinestatic

◆ IsDef()

◆ IsPhi()

◆ IsPreservingDef()

bool llvm::rdf::DataFlowGraph::IsPreservingDef ( const Def DA)
inlinestatic

Definition at line 840 of file RDFGraph.h.

References llvm::rdf::NodeAttrs::Preserving, and llvm::rdf::NodeAttrs::Undef.

◆ IsRef()

template<uint16_t Kind>
bool llvm::rdf::DataFlowGraph::IsRef ( const Node BA)
inlinestatic

◆ isTracked()

bool llvm::rdf::DataFlowGraph::isTracked ( RegisterRef RR) const

Definition at line 1820 of file RDFGraph.cpp.

References llvm::rdf::disjoint(), and getPRI().

Referenced by build(), and hasUntrackedRef().

◆ IsUse()

◆ makeRegRef() [1/2]

RegisterRef llvm::rdf::DataFlowGraph::makeRegRef ( const MachineOperand & Op) const

Definition at line 995 of file RDFGraph.cpp.

References assert(), llvm::LaneBitmask::getAll(), getPRI(), and makeRegRef().

◆ makeRegRef() [2/2]

RegisterRef llvm::rdf::DataFlowGraph::makeRegRef ( unsigned Reg,
unsigned Sub ) const

◆ markBlock()

void llvm::rdf::DataFlowGraph::markBlock ( NodeId B,
DefStackMap & DefM )

Definition at line 1004 of file RDFGraph.cpp.

References B(), and P.

◆ pack() [1/2]

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

Definition at line 781 of file RDFGraph.h.

References llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.

◆ pack() [2/2]

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

Definition at line 784 of file RDFGraph.h.

References llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.

◆ ptr() [1/2]

NodeBase * llvm::rdf::DataFlowGraph::ptr ( NodeId N) const

Definition at line 760 of file RDFGraph.cpp.

References N.

Referenced by addr(), and ptr().

◆ ptr() [2/2]

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

Definition at line 683 of file RDFGraph.h.

References N, ptr(), and T.

◆ pushAllDefs()

void llvm::rdf::DataFlowGraph::pushAllDefs ( Instr IA,
DefStackMap & DM )

Definition at line 1029 of file RDFGraph.cpp.

◆ releaseBlock()

void llvm::rdf::DataFlowGraph::releaseBlock ( NodeId B,
DefStackMap & DefM )

Definition at line 1011 of file RDFGraph.cpp.

References B(), E(), I, and P.

◆ unlinkDef()

void llvm::rdf::DataFlowGraph::unlinkDef ( Def DA,
bool RemoveFromOwner )
inline

Definition at line 807 of file RDFGraph.h.

◆ unlinkUse()

void llvm::rdf::DataFlowGraph::unlinkUse ( Use UA,
bool RemoveFromOwner )
inline

Definition at line 801 of file RDFGraph.h.

◆ unpack()

RegisterRef llvm::rdf::DataFlowGraph::unpack ( PackedRegisterRef PR) const
inline

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