|
LLVM
4.0.0
|
#include <RDFLiveness.h>
Classes | |
| struct | LiveMapType |
Public Types | |
| typedef std::pair< NodeId, LaneBitmask > | NodeRef |
| typedef std::set< NodeRef > | NodeRefSet |
| typedef std::map< RegisterId, NodeRefSet > | RefMap |
Public Member Functions | |
| Liveness (MachineRegisterInfo &mri, const DataFlowGraph &g) | |
| NodeList | getAllReachingDefs (RegisterRef RefRR, NodeAddr< RefNode * > RefA, bool FullChain, const RegisterAggr &DefRRs) |
| NodeList | getAllReachingDefs (NodeAddr< RefNode * > RefA) |
| NodeList | getAllReachingDefs (RegisterRef RefRR, NodeAddr< RefNode * > RefA) |
| NodeSet | getAllReachingDefsRec (RegisterRef RefRR, NodeAddr< RefNode * > RefA, NodeSet &Visited, const NodeSet &Defs) |
| NodeSet | getAllReachedUses (RegisterRef RefRR, NodeAddr< DefNode * > DefA, const RegisterAggr &DefRRs) |
| NodeSet | getAllReachedUses (RegisterRef RefRR, NodeAddr< DefNode * > DefA) |
| LiveMapType & | getLiveMap () |
| const LiveMapType & | getLiveMap () const |
| const RefMap & | getRealUses (NodeId P) const |
| void | computePhiInfo () |
| void | computeLiveIns () |
| void | resetLiveIns () |
| void | resetKills () |
| void | resetKills (MachineBasicBlock *B) |
| void | trace (bool T) |
Definition at line 31 of file RDFLiveness.h.
| typedef std::pair<NodeId,LaneBitmask> llvm::rdf::Liveness::NodeRef |
Definition at line 46 of file RDFLiveness.h.
| typedef std::set<NodeRef> llvm::rdf::Liveness::NodeRefSet |
Definition at line 47 of file RDFLiveness.h.
| typedef std::map<RegisterId,NodeRefSet> llvm::rdf::Liveness::RefMap |
Definition at line 49 of file RDFLiveness.h.
|
inline |
Definition at line 51 of file RDFLiveness.h.
| void Liveness::computeLiveIns | ( | ) |
Definition at line 581 of file RDFLiveness.cpp.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::DataFlowGraph::addr(), B, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), computePhiInfo(), D, llvm::dbgs(), E, llvm::MachineDominanceFrontier::end(), llvm::MachineDominanceFrontier::find(), getAllReachingDefs(), llvm::rdf::DataFlowGraph::getFunc(), llvm::rdf::DataFlowGraph::getMF(), llvm::rdf::PhiUseNode::getPredecessor(), llvm::rdf::RefNode::getReachingDef(), llvm::MCSubRegIndexIterator::getSubReg(), llvm::MCSubRegIndexIterator::getSubRegIndex(), llvm::TargetRegisterInfo::getSubRegIndexLaneMask(), I, i, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::rdf::DataFlowGraph::IsCode(), llvm::rdf::DataFlowGraph::IsRef(), llvm::MCSubRegIndexIterator::isValid(), llvm::MachineRegisterInfo::livein_begin(), llvm::MachineRegisterInfo::livein_end(), llvm::rdf::RegisterRef::Mask, llvm::rdf::CodeNode::members(), llvm::rdf::DataFlowGraph::normalizeRef(), P, llvm::rdf::NodeAttrs::Phi, llvm::rdf::RegisterRef::Reg, llvm::rdf::DataFlowGraph::restrictRef(), and llvm::rdf::NodeAttrs::Use.
| void Liveness::computePhiInfo | ( | ) |
Definition at line 332 of file RDFLiveness.cpp.
References A, llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::DataFlowGraph::addr(), llvm::any_of(), assert(), llvm::rdf::RegisterAggr::clearIn(), llvm::dbgs(), llvm::rdf::NodeAttrs::Dead, llvm::rdf::NodeAttrs::Def, E, F, fuzzer::Flags, getAllReachingDefs(), llvm::rdf::NodeBase::getFlags(), llvm::rdf::DataFlowGraph::getFunc(), llvm::rdf::RefNode::getOwner(), llvm::rdf::DefNode::getReachedDef(), llvm::rdf::DefNode::getReachedUse(), llvm::rdf::DataFlowGraph::getRelatedRefs(), llvm::rdf::RefNode::getSibling(), llvm::rdf::RegisterAggr::hasCoverOf(), I, i, llvm::rdf::NodeAddr< T >::Id, llvm::SetVector< T, Vector, Set >::insert(), llvm::rdf::RegisterAggr::insert(), llvm::rdf::DataFlowGraph::IsCode(), llvm::rdf::DataFlowGraph::IsRef(), llvm::rdf::RegisterRef::Mask, llvm::rdf::CodeNode::members(), llvm::rdf::CodeNode::members_if(), llvm::rdf::DataFlowGraph::normalizeRef(), P, llvm::rdf::NodeAttrs::Phi, llvm::rdf::NodeAttrs::PhiRef, llvm::rdf::RegisterRef::Reg, llvm::rdf::DataFlowGraph::restrictRef(), llvm::NVPTX::PTXCvtMode::RP, llvm::SetVector< T, Vector, Set >::size(), T, llvm::rdf::NodeAttrs::Undef, and llvm::rdf::NodeAttrs::Use.
Referenced by computeLiveIns().
| NodeSet Liveness::getAllReachedUses | ( | RegisterRef | RefRR, |
| NodeAddr< DefNode * > | DefA, | ||
| const RegisterAggr & | DefRRs | ||
| ) |
Definition at line 285 of file RDFLiveness.cpp.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::DataFlowGraph::addr(), llvm::rdf::DataFlowGraph::alias(), D, llvm::rdf::NodeAttrs::Dead, llvm::rdf::NodeBase::getFlags(), llvm::rdf::DefNode::getReachedDef(), llvm::rdf::DefNode::getReachedUse(), llvm::rdf::RefNode::getSibling(), llvm::rdf::RegisterAggr::hasCoverOf(), llvm::rdf::RegisterAggr::insert(), llvm::rdf::DataFlowGraph::IsPreservingDef(), T, and llvm::rdf::NodeAttrs::Undef.
Referenced by getAllReachedUses().
|
inline |
Definition at line 68 of file RDFLiveness.h.
References getAllReachedUses().
| NodeList Liveness::getAllReachingDefs | ( | RegisterRef | RefRR, |
| NodeAddr< RefNode * > | RefA, | ||
| bool | FullChain, | ||
| const RegisterAggr & | DefRRs | ||
| ) |
Definition at line 87 of file RDFLiveness.cpp.
References A, llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::DataFlowGraph::addr(), llvm::rdf::DataFlowGraph::alias(), assert(), B, llvm::SetVector< T, Vector, Set >::begin(), llvm::SetVector< T, Vector, Set >::count(), llvm::rdf::NodeAttrs::Dead, llvm::rdf::NodeAttrs::Def, llvm::MachineDominatorTree::dominates(), llvm::SetVector< T, Vector, Set >::end(), fuzzer::Flags, llvm::rdf::BlockNode::getCode(), llvm::rdf::NodeBase::getFlags(), llvm::rdf::DataFlowGraph::getRelatedRefs(), i, llvm::rdf::NodeAddr< T >::Id, llvm::SetVector< T, Vector, Set >::insert(), llvm::rdf::DataFlowGraph::IsCode(), llvm::rdf::RegisterAggr::isCoverOf(), llvm::rdf::DataFlowGraph::IsPreservingDef(), llvm::CodeGenOpt::Less, N, llvm::X86II::OB, llvm::rdf::NodeAttrs::Phi, llvm::rdf::NodeAttrs::PhiRef, llvm::rdf::NodeAttrs::Preserving, llvm::remove_if(), llvm::SetVector< T, Vector, Set >::size(), llvm::rdf::NodeAttrs::Stmt, T, llvm::X86II::TA, and llvm::rdf::NodeAttrs::Undef.
Referenced by computeLiveIns(), computePhiInfo(), getAllReachingDefs(), and getAllReachingDefsRec().
Definition at line 58 of file RDFLiveness.h.
References llvm::rdf::NodeAddr< T >::Addr, and getAllReachingDefs().
|
inline |
Definition at line 61 of file RDFLiveness.h.
References getAllReachingDefs().
| NodeSet Liveness::getAllReachingDefsRec | ( | RegisterRef | RefRR, |
| NodeAddr< RefNode * > | RefA, | ||
| NodeSet & | Visited, | ||
| const NodeSet & | Defs | ||
| ) |
Definition at line 244 of file RDFLiveness.cpp.
References llvm::rdf::NodeAddr< T >::Addr, llvm::rdf::DataFlowGraph::addr(), D, getAllReachingDefs(), llvm::rdf::NodeAddr< T >::Id, llvm::rdf::RegisterAggr::insert(), llvm::rdf::DataFlowGraph::IsRef(), llvm::rdf::CodeNode::members_if(), llvm::rdf::NodeAttrs::PhiRef, and llvm::rdf::NodeAttrs::Use.
|
inline |
Definition at line 72 of file RDFLiveness.h.
|
inline |
Definition at line 73 of file RDFLiveness.h.
Definition at line 74 of file RDFLiveness.h.
References F.
| void Liveness::resetKills | ( | ) |
Definition at line 746 of file RDFLiveness.cpp.
References B, and llvm::rdf::DataFlowGraph::getMF().
| void Liveness::resetKills | ( | MachineBasicBlock * | B | ) |
Definition at line 752 of file RDFLiveness.cpp.
References B, llvm::MachineInstr::clearKillInfo(), E, llvm::MCRegisterInfo::getNumRegs(), llvm::MCSubRegIndexIterator::getSubReg(), llvm::MCSubRegIndexIterator::getSubRegIndex(), llvm::TargetRegisterInfo::getSubRegIndexLaneMask(), I, llvm::MachineInstr::isDebugValue(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MCSubRegIndexIterator::isValid(), llvm::MCRegAliasIterator::isValid(), llvm::MachineBasicBlock::liveins(), MI, llvm::MachineInstr::operands(), llvm::MachineBasicBlock::rbegin(), llvm::MachineBasicBlock::rend(), SI, and llvm::MachineBasicBlock::successors().
| void Liveness::resetLiveIns | ( | ) |
Definition at line 729 of file RDFLiveness.cpp.
References B, E, llvm::rdf::DataFlowGraph::getMF(), I, and T.
|
inline |
Definition at line 85 of file RDFLiveness.h.
References T.
1.8.6