|
LLVM
4.0.0
|
#include <RDFGraph.h>
Classes | |
| struct | DefStack |
Public Types | |
| typedef std::unordered_map < RegisterId, DefStack > | DefStackMap |
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 744 of file RDFGraph.h.
| typedef std::unordered_map<RegisterId,DefStack> llvm::rdf::DataFlowGraph::DefStackMap |
Definition at line 828 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 764 of file RDFGraph.cpp.
Definition at line 756 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::Liveness::getAllReachingDefsRec(), llvm::rdf::CodeNode::getFirstMember(), llvm::rdf::CodeNode::getLastMember(), llvm::rdf::RefNode::getNextRef(), llvm::rdf::RefNode::getOwner(), llvm::rdf::InstrNode::getOwner(), llvm::rdf::CodeNode::members_if(), llvm::rdf::CodeNode::removeMember(), and llvm::rdf::CopyPropagation::run().
| bool DataFlowGraph::alias | ( | RegisterRef | RA, |
| RegisterRef | RB | ||
| ) | const |
Definition at line 1207 of file RDFGraph.cpp.
References llvm::LaneBitmask::any(), assert(), llvm::TargetRegisterInfo::getMinimalPhysRegClass(), llvm::MCRegisterInfo::getSubRegIndex(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MCRegUnitMaskIterator::isValid(), llvm::TargetRegisterClass::LaneMask, llvm::rdf::RegisterRef::Mask, llvm::rdf::RegisterRef::Reg, and llvm::TargetRegisterInfo::reverseComposeSubRegIndexLaneMask().
Referenced by llvm::rdf::Liveness::getAllReachedUses(), and llvm::rdf::Liveness::getAllReachingDefs().
| void DataFlowGraph::build | ( | unsigned | Options = BuildOptions::None | ) |
Definition at line 989 of file RDFGraph.cpp.
References llvm::rdf::CodeNode::addMember(), llvm::rdf::NodeAddr< T >::Addr, E, llvm::MachineFunction::empty(), llvm::rdf::BlockNode::getCode(), I, llvm::MachineBasicBlock::isEHPad(), llvm::rdf::BuildOptions::KeepDeadPhis, llvm::MachineRegisterInfo::livein_begin(), llvm::MachineRegisterInfo::livein_end(), MRI, llvm::rdf::NodeAttrs::PhiRef, llvm::MachineBasicBlock::predecessors(), llvm::rdf::NodeAttrs::Preserving, and llvm::MachineBasicBlock::push_back().
|
inline |
Definition at line 765 of file RDFGraph.h.
|
inline |
Definition at line 764 of file RDFGraph.h.
Definition at line 760 of file RDFGraph.h.
Referenced by llvm::rdf::DeadCodeElimination::collect(), llvm::rdf::Liveness::computeLiveIns(), and llvm::rdf::Liveness::computePhiInfo().
|
inline |
Definition at line 761 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*> 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 |
Definition at line 1272 of file RDFGraph.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), llvm::rdf::NodeBase::getKind(), llvm::rdf::RefNode::getNextRef(), llvm::rdf::RefNode::getOp(), llvm::rdf::PhiUseNode::getPredecessor(), llvm::rdf::RefNode::getRegRef(), llvm::rdf::NodeAddr< T >::Id, 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, | ||
| bool | Create | ||
| ) |
Definition at line 1333 of file RDFGraph.cpp.
References llvm::rdf::CodeNode::addMemberAfter(), llvm::rdf::NodeAddr< T >::Addr, assert(), fuzzer::Flags, llvm::rdf::NodeBase::getFlags(), llvm::rdf::NodeAddr< T >::Id, llvm::rdf::NodeBase::setFlags(), llvm::rdf::NodeAttrs::Shadow, and llvm::X86II::TA.
| NodeAddr< RefNode * > DataFlowGraph::getNextShadow | ( | NodeAddr< InstrNode * > | IA, |
| NodeAddr< RefNode * > | RA | ||
| ) | const |
Definition at line 1354 of file RDFGraph.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), fuzzer::Flags, llvm::rdf::NodeBase::getFlags(), llvm::rdf::NodeAddr< T >::Id, llvm::rdf::NodeAttrs::Shadow, and llvm::X86II::TA.
| NodeList DataFlowGraph::getRelatedRefs | ( | NodeAddr< InstrNode * > | IA, |
| NodeAddr< RefNode * > | RA | ||
| ) | const |
Definition at line 1193 of file RDFGraph.cpp.
References assert(), getNextRelated(), and llvm::rdf::NodeAddr< T >::Id.
Referenced by llvm::rdf::Liveness::computePhiInfo(), llvm::rdf::Liveness::getAllReachingDefs(), and pushDefs().
|
inline |
Definition at line 762 of file RDFGraph.h.
|
inline |
Definition at line 763 of file RDFGraph.h.
Referenced by llvm::rdf::CopyPropagation::interpretAsCopy(), and llvm::rdf::CopyPropagation::run().
Definition at line 894 of file RDFGraph.cpp.
Referenced by llvm::rdf::CodeNode::addMember().
|
inlinestatic |
Definition at line 876 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Code, and Kind.
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 881 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(), pushDefs(), and llvm::rdf::CopyPropagation::run().
Definition at line 891 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::NodeAttrs::Code, and llvm::rdf::NodeAttrs::Phi.
|
inlinestatic |
Definition at line 896 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, fuzzer::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 870 of file RDFGraph.h.
References llvm::rdf::NodeAddr< T >::Addr, Kind, and llvm::rdf::NodeAttrs::Ref.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), and llvm::rdf::Liveness::getAllReachingDefsRec().
Definition at line 886 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 | ( | unsigned | Reg, |
| unsigned | Sub | ||
| ) | const |
Definition at line 1073 of file RDFGraph.cpp.
References assert(), llvm::MCRegisterInfo::getSubReg(), and llvm::TargetRegisterInfo::isPhysicalRegister().
Referenced by llvm::rdf::RefNode::getRegRef(), and llvm::rdf::CopyPropagation::interpretAsCopy().
| void DataFlowGraph::markBlock | ( | NodeId | B, |
| DefStackMap & | DefM | ||
| ) |
Definition at line 1115 of file RDFGraph.cpp.
| RegisterRef DataFlowGraph::normalizeRef | ( | RegisterRef | RR | ) | const |
Definition at line 1080 of file RDFGraph.cpp.
References llvm::TargetRegisterInfo::composeSubRegIndexLaneMask(), llvm::TargetRegisterInfo::getMinimalPhysRegClass(), llvm::MCRegisterInfo::getSubRegIndex(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::TargetRegisterClass::LaneMask, llvm::rdf::RegisterRef::Mask, and llvm::rdf::RegisterRef::Reg.
Referenced by llvm::rdf::Liveness::computeLiveIns(), llvm::rdf::Liveness::computePhiInfo(), and restrictRef().
|
inline |
Definition at line 835 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::pack().
Referenced by llvm::rdf::RefNode::setRegRef().
|
inline |
Definition at line 836 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::pack().
Definition at line 887 of file RDFGraph.cpp.
Referenced by ptr().
Definition at line 750 of file RDFGraph.h.
References ptr().
| void DataFlowGraph::pushDefs | ( | NodeAddr< InstrNode * > | IA, |
| DefStackMap & | DM | ||
| ) |
Definition at line 1140 of file RDFGraph.cpp.
References A, llvm::rdf::NodeAddr< T >::Addr, assert(), llvm::dbgs(), llvm::MachineBasicBlock::getNumber(), llvm::MachineInstr::getParent(), llvm::rdf::RefNode::getRegRef(), getRelatedRefs(), llvm::rdf::NodeAddr< T >::Id, IsDef(), llvm_unreachable, llvm::rdf::CodeNode::members_if(), and llvm::rdf::RegisterRef::Reg.
| void DataFlowGraph::releaseBlock | ( | NodeId | B, |
| DefStackMap & | DefM | ||
| ) |
Definition at line 1122 of file RDFGraph.cpp.
| RegisterRef DataFlowGraph::restrictRef | ( | RegisterRef | AR, |
| RegisterRef | BR | ||
| ) | const |
Definition at line 1097 of file RDFGraph.cpp.
References llvm::LaneBitmask::any(), assert(), llvm::rdf::RegisterRef::Mask, normalizeRef(), llvm::rdf::RegisterRef::Reg, and llvm::TargetRegisterInfo::regsOverlap().
Referenced by llvm::rdf::Liveness::computeLiveIns(), and llvm::rdf::Liveness::computePhiInfo().
Definition at line 862 of file RDFGraph.h.
Referenced by llvm::rdf::DeadCodeElimination::erase().
Definition at line 856 of file RDFGraph.h.
Referenced by llvm::rdf::DeadCodeElimination::erase(), and llvm::rdf::CopyPropagation::run().
|
inline |
Definition at line 837 of file RDFGraph.h.
References llvm::rdf::LaneMaskIndex::unpack().
Referenced by llvm::rdf::RefNode::getRegRef().
1.8.6