LLVM 17.0.0git
|
#include "llvm/CodeGen/RDFGraph.h"
Classes | |
struct | DefStack |
Public Types | |
using | DefStackMap = std::unordered_map< RegisterId, DefStack > |
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) |
Definition at line 645 of file RDFGraph.h.
using llvm::rdf::DataFlowGraph::DefStackMap = std::unordered_map<RegisterId, DefStack> |
Definition at line 737 of file RDFGraph.h.
DataFlowGraph::DataFlowGraph | ( | MachineFunction & | mf, |
const TargetInstrInfo & | tii, | ||
const TargetRegisterInfo & | tri, | ||
const MachineDominatorTree & | mdt, | ||
const MachineDominanceFrontier & | mdf | ||
) |
Definition at line 644 of file RDFGraph.cpp.
DataFlowGraph::DataFlowGraph | ( | MachineFunction & | mf, |
const TargetInstrInfo & | tii, | ||
const TargetRegisterInfo & | tri, | ||
const MachineDominatorTree & | mdt, | ||
const MachineDominanceFrontier & | mdf, | ||
const TargetOperandInfo & | toi | ||
) |
Definition at line 652 of file RDFGraph.cpp.
Definition at line 660 of file RDFGraph.h.
References N.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), llvm::rdf::Liveness::getAllReachedUses(), and llvm::rdf::Liveness::getAllReachingDefs().
void DataFlowGraph::build | ( | unsigned | Options = BuildOptions::None | ) |
Definition at line 869 of file RDFGraph.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), B, DM, E, llvm::MachineFunction::empty(), findBlock(), I, llvm::rdf::RegisterAggr::insert(), llvm::rdf::BuildOptions::KeepDeadPhis, llvm::MachineBasicBlock::liveins(), MRI, Options, P, PB(), llvm::rdf::NodeAttrs::PhiRef, llvm::MachineBasicBlock::pred_empty(), llvm::rdf::NodeAttrs::Preserving, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RA, llvm::rdf::RegisterAggr::rr_begin(), and llvm::rdf::RegisterAggr::rr_end().
|
inline |
Definition at line 767 of file RDFGraph.h.
Referenced by build(), and llvm::rdf::Liveness::getNearestAliasedRef().
|
inline |
Definition at line 670 of file RDFGraph.h.
|
inline |
Definition at line 669 of file RDFGraph.h.
Definition at line 664 of file RDFGraph.h.
Referenced by llvm::rdf::Liveness::computeLiveIns(), and llvm::rdf::Liveness::computePhiInfo().
|
inline |
Definition at line 671 of file RDFGraph.h.
Referenced by llvm::rdf::Liveness::computeLiveIns().
|
inline |
Definition at line 665 of file RDFGraph.h.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::resetKills(), and llvm::rdf::Liveness::resetLiveIns().
NodeAddr< RefNode * > DataFlowGraph::getNextRelated | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA | ||
) | const |
Definition at line 1140 of file RDFGraph.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), RA, llvm::rdf::NodeAttrs::Stmt, and llvm::rdf::NodeAttrs::Use.
Referenced by getRelatedRefs().
NodeAddr< RefNode * > DataFlowGraph::getNextShadow | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA | ||
) | const |
Definition at line 1222 of file RDFGraph.cpp.
References assert(), Flags, RA, and llvm::rdf::NodeAttrs::Shadow.
NodeAddr< RefNode * > DataFlowGraph::getNextShadow | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA, | ||
bool | Create | ||
) |
Definition at line 1201 of file RDFGraph.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), Flags, RA, and llvm::rdf::NodeAttrs::Shadow.
|
inline |
Definition at line 668 of file RDFGraph.h.
NodeList DataFlowGraph::getRelatedRefs | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA | ||
) | const |
Definition at line 1114 of file RDFGraph.cpp.
References assert(), getNextRelated(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and RA.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), and llvm::rdf::Liveness::getAllReachingDefs().
|
inline |
Definition at line 666 of file RDFGraph.h.
|
inline |
Definition at line 667 of file RDFGraph.h.
Definition at line 774 of file RDFGraph.cpp.
References P.
|
inlinestatic |
Definition at line 791 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, and llvm::rdf::NodeAttrs::Code.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), and llvm::rdf::Liveness::getAllReachingDefs().
Definition at line 796 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Def, and llvm::rdf::NodeAttrs::Ref.
Referenced by llvm::rdf::Liveness::getNearestAliasedRef().
Definition at line 806 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Code, and llvm::rdf::NodeAttrs::Phi.
|
inlinestatic |
Definition at line 811 of file RDFGraph.h.
References Flags, llvm::rdf::NodeAttrs::Preserving, and llvm::rdf::NodeAttrs::Undef.
Referenced by llvm::rdf::Liveness::getAllReachedUses(), and llvm::rdf::Liveness::getAllReachingDefs().
|
inlinestatic |
Definition at line 785 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, and llvm::rdf::NodeAttrs::Ref.
Referenced by llvm::rdf::Liveness::computeLiveIns(), and llvm::rdf::Liveness::computePhiInfo().
Definition at line 801 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Ref, and llvm::rdf::NodeAttrs::Use.
RegisterRef DataFlowGraph::makeRegRef | ( | const MachineOperand & | Op | ) | const |
Definition at line 976 of file RDFGraph.cpp.
References assert(), llvm::LaneBitmask::getAll(), llvm::rdf::PhysicalRegisterInfo::getRegMaskId(), and makeRegRef().
RegisterRef DataFlowGraph::makeRegRef | ( | unsigned | Reg, |
unsigned | Sub | ||
) | const |
Definition at line 967 of file RDFGraph.cpp.
References assert(), llvm::TargetRegisterInfo::getSubReg(), llvm::Register::isPhysicalRegister(), and llvm::rdf::PhysicalRegisterInfo::isRegMaskId().
Referenced by makeRegRef().
void DataFlowGraph::markBlock | ( | NodeId | B, |
DefStackMap & | DefM | ||
) |
Definition at line 984 of file RDFGraph.cpp.
|
inline |
Definition at line 744 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::getIndexForLaneMask(), llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.
|
inline |
Definition at line 747 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::getIndexForLaneMask(), llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.
Definition at line 654 of file RDFGraph.h.
void DataFlowGraph::pushAllDefs | ( | NodeAddr< InstrNode * > | IA, |
DefStackMap & | DM | ||
) |
Definition at line 1009 of file RDFGraph.cpp.
void DataFlowGraph::releaseBlock | ( | NodeId | B, |
DefStackMap & | DefM | ||
) |
Definition at line 777 of file RDFGraph.h.
Definition at line 771 of file RDFGraph.h.
|
inline |
Definition at line 750 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::getLaneMaskForIndex(), llvm::rdf::PackedRegisterRef::MaskId, and llvm::rdf::PackedRegisterRef::Reg.