LLVM
15.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 644 of file RDFGraph.h.
using llvm::rdf::DataFlowGraph::DefStackMap = std::unordered_map<RegisterId, DefStack> |
Definition at line 733 of file RDFGraph.h.
DataFlowGraph::DataFlowGraph | ( | MachineFunction & | mf, |
const TargetInstrInfo & | tii, | ||
const TargetRegisterInfo & | tri, | ||
const MachineDominatorTree & | mdt, | ||
const MachineDominanceFrontier & | mdf, | ||
const TargetOperandInfo & | toi | ||
) |
Definition at line 649 of file RDFGraph.cpp.
Definition at line 656 of file RDFGraph.h.
References N.
Referenced by llvm::rdf::BlockNode::addPhi(), llvm::rdf::DeadCodeElimination::collect(), llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), llvm::rdf::DeadCodeElimination::erase(), llvm::rdf::Liveness::getAllReachedUses(), llvm::rdf::Liveness::getAllReachingDefs(), llvm::rdf::CodeNode::getFirstMember(), llvm::rdf::CodeNode::getLastMember(), llvm::rdf::RefNode::getOwner(), llvm::rdf::InstrNode::getOwner(), llvm::rdf::CodeNode::removeMember(), and llvm::rdf::CopyPropagation::run().
void DataFlowGraph::build | ( | unsigned | Options = BuildOptions::None | ) |
Definition at line 866 of file RDFGraph.cpp.
References llvm::rdf::CodeNode::addMember(), llvm::rdf::NodeAddr< T >::Addr, assert(), B, llvm::M68kBeads::DA, DM, E, llvm::MachineFunction::empty(), findBlock(), llvm::rdf::BlockNode::getCode(), I, llvm::rdf::RegisterAggr::insert(), llvm::rdf::BuildOptions::KeepDeadPhis, llvm::MachineBasicBlock::liveins(), llvm::MachineRegisterInfo::liveins(), llvm::rdf::CodeNode::members(), MRI, Options, P, PB(), llvm::rdf::NodeAttrs::PhiRef, llvm::MachineBasicBlock::pred_empty(), llvm::rdf::NodeAttrs::Preserving, RA, llvm::rdf::RegisterAggr::rr_begin(), llvm::rdf::RegisterAggr::rr_end(), and llvm::MachineRegisterInfo::tracksLiveness().
|
inline |
Definition at line 763 of file RDFGraph.h.
References BB.
Referenced by build(), and llvm::rdf::Liveness::getNearestAliasedRef().
|
inline |
Definition at line 666 of file RDFGraph.h.
|
inline |
Definition at line 665 of file RDFGraph.h.
Definition at line 660 of file RDFGraph.h.
Referenced by llvm::rdf::DeadCodeElimination::collect(), llvm::rdf::Liveness::computeLiveIns(), and llvm::rdf::Liveness::computePhiInfo().
|
inline |
Definition at line 667 of file RDFGraph.h.
Referenced by llvm::rdf::Liveness::computeLiveIns().
|
inline |
Definition at line 661 of file RDFGraph.h.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::resetKills(), llvm::rdf::Liveness::resetLiveIns(), and llvm::rdf::CopyPropagation::run().
NodeAddr< RefNode * > DataFlowGraph::getNextRelated | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA | ||
) | const |
Definition at line 1137 of file RDFGraph.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), llvm::rdf::NodeBase::getKind(), llvm::rdf::PhiUseNode::getPredecessor(), llvm::rdf::NodeAddr< T >::Id, RA, llvm::rdf::NodeAttrs::Stmt, llvm::X86II::TA, and llvm::rdf::NodeAttrs::Use.
Referenced by getRelatedRefs().
NodeAddr< RefNode * > DataFlowGraph::getNextShadow | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA | ||
) | const |
Definition at line 1219 of file RDFGraph.cpp.
References assert(), llvm::rdf::NodeAddr< T >::Id, RA, llvm::rdf::NodeAttrs::Shadow, and llvm::X86II::TA.
NodeAddr< RefNode * > DataFlowGraph::getNextShadow | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA, | ||
bool | Create | ||
) |
Definition at line 1198 of file RDFGraph.cpp.
References llvm::rdf::CodeNode::addMemberAfter(), llvm::rdf::NodeAddr< T >::Addr, assert(), llvm::rdf::NodeAddr< T >::Id, RA, llvm::rdf::NodeBase::setFlags(), llvm::rdf::NodeAttrs::Shadow, and llvm::X86II::TA.
|
inline |
Definition at line 664 of file RDFGraph.h.
NodeList DataFlowGraph::getRelatedRefs | ( | NodeAddr< InstrNode * > | IA, |
NodeAddr< RefNode * > | RA | ||
) | const |
Definition at line 1111 of file RDFGraph.cpp.
References assert(), getNextRelated(), llvm::rdf::NodeAddr< T >::Id, and RA.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), and llvm::rdf::Liveness::getAllReachingDefs().
|
inline |
Definition at line 662 of file RDFGraph.h.
|
inline |
Definition at line 663 of file RDFGraph.h.
Referenced by llvm::rdf::CopyPropagation::interpretAsCopy(), and llvm::rdf::CopyPropagation::run().
Definition at line 771 of file RDFGraph.cpp.
References P.
Referenced by llvm::rdf::CodeNode::addMember().
|
inlinestatic |
Definition at line 787 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, and llvm::rdf::NodeAttrs::Code.
Referenced by llvm::rdf::DeadCodeElimination::collect(), llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), llvm::rdf::DeadCodeElimination::erase(), llvm::rdf::Liveness::getAllReachingDefs(), and llvm::rdf::CopyPropagation::run().
Definition at line 792 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Def, and llvm::rdf::NodeAttrs::Ref.
Referenced by llvm::rdf::DeadCodeElimination::collect(), llvm::rdf::DeadCodeElimination::erase(), llvm::rdf::Liveness::getNearestAliasedRef(), and llvm::rdf::CopyPropagation::run().
Definition at line 802 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Code, and llvm::rdf::NodeAttrs::Phi.
|
inlinestatic |
Definition at line 807 of file RDFGraph.h.
References llvm::M68kBeads::DA, llvm::rdf::NodeAttrs::Preserving, and llvm::rdf::NodeAttrs::Undef.
Referenced by llvm::rdf::Liveness::getAllReachedUses(), and llvm::rdf::Liveness::getAllReachingDefs().
|
inlinestatic |
Definition at line 781 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 797 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Ref, and llvm::rdf::NodeAttrs::Use.
Referenced by llvm::rdf::DeadCodeElimination::erase().
RegisterRef DataFlowGraph::makeRegRef | ( | const MachineOperand & | Op | ) | const |
Definition at line 973 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 964 of file RDFGraph.cpp.
References assert(), llvm::TargetRegisterInfo::getSubReg(), llvm::Register::isPhysicalRegister(), and llvm::rdf::PhysicalRegisterInfo::isRegMaskId().
Referenced by llvm::rdf::RefNode::getRegRef(), llvm::rdf::CopyPropagation::interpretAsCopy(), and makeRegRef().
void DataFlowGraph::markBlock | ( | NodeId | B, |
DefStackMap & | DefM | ||
) |
Definition at line 981 of file RDFGraph.cpp.
|
inline |
Definition at line 740 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::getIndexForLaneMask(), llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.
Referenced by llvm::rdf::RefNode::setRegRef().
|
inline |
Definition at line 743 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::getIndexForLaneMask(), llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.
Definition at line 650 of file RDFGraph.h.
void DataFlowGraph::pushAllDefs | ( | NodeAddr< InstrNode * > | IA, |
DefStackMap & | DM | ||
) |
Definition at line 1006 of file RDFGraph.cpp.
void DataFlowGraph::releaseBlock | ( | NodeId | B, |
DefStackMap & | DefM | ||
) |
Definition at line 773 of file RDFGraph.h.
References llvm::M68kBeads::DA.
Referenced by llvm::rdf::DeadCodeElimination::erase().
Definition at line 767 of file RDFGraph.h.
Referenced by llvm::rdf::DeadCodeElimination::erase(), and llvm::rdf::CopyPropagation::run().
|
inline |
Definition at line 746 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::getLaneMaskForIndex(), llvm::rdf::PackedRegisterRef::MaskId, and llvm::rdf::PackedRegisterRef::Reg.
Referenced by llvm::rdf::RefNode::getRegRef().