13 #ifndef RDF_LIVENESS_H
14 #define RDF_LIVENESS_H
39 return Map.emplace(B, Empty).first->second;
43 std::map<MachineBasicBlock*,RegisterAggr> Map;
46 typedef std::pair<NodeId,LaneBitmask>
NodeRef;
49 typedef std::map<RegisterId,NodeRefSet>
RefMap;
52 : DFG(g), TRI(g.getTRI()), MDT(g.getDT()), MDF(g.getDF()),
53 MRI(mri), LiveMap(g.getTRI()), Empty(), NoRegs(g.getTRI()),
75 auto F = RealUseMap.find(P);
76 return F == RealUseMap.end() ? Empty :
F->second;
109 std::map<NodeId, RefMap> RealUseMap;
112 std::map<MachineBasicBlock*,std::set<MachineBasicBlock*>> IIDF;
115 std::map<MachineBasicBlock*,RefMap> PhiLON;
122 std::map<MachineBasicBlock*,RefMap> PhiLOX;
134 #endif // RDF_LIVENESS_H
std::set< NodeRef > NodeRefSet
const LiveMapType & getLiveMap() const
std::vector< NodeAddr< NodeBase * > > NodeList
RegisterAggr & operator[](MachineBasicBlock *B)
std::map< RegisterId, NodeRefSet > RefMap
Function Alias Analysis false
NodeList getAllReachingDefs(RegisterRef RefRR, NodeAddr< RefNode * > RefA, bool FullChain, const RegisterAggr &DefRRs)
static GCRegistry::Add< OcamlGC > B("ocaml","ocaml 3.10-compatible GC")
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
NodeSet getAllReachedUses(RegisterRef RefRR, NodeAddr< DefNode * > DefA, const RegisterAggr &DefRRs)
std::pair< NodeId, LaneBitmask > NodeRef
NodeSet getAllReachingDefsRec(RegisterRef RefRR, NodeAddr< RefNode * > RefA, NodeSet &Visited, const NodeSet &Defs)
NodeList getAllReachingDefs(RegisterRef RefRR, NodeAddr< RefNode * > RefA)
LiveMapType & getLiveMap()
std::set< NodeId > NodeSet
NodeList getAllReachingDefs(NodeAddr< RefNode * > RefA)
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
const RefMap & getRealUses(NodeId P) const
NodeSet getAllReachedUses(RegisterRef RefRR, NodeAddr< DefNode * > DefA)
LiveMapType(const TargetRegisterInfo &tri)
Liveness(MachineRegisterInfo &mri, const DataFlowGraph &g)
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...