reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/Hexagon/RDFLiveness.cpp
  125   auto SNA = DFG.addr<RefNode*>(Start);
  129     for (auto S : DFG.getRelatedRefs(RefA.Addr->getOwner(DFG), RefA))
  129     for (auto S : DFG.getRelatedRefs(RefA.Addr->getOwner(DFG), RefA))
  141     auto TA = DFG.addr<DefNode*>(DefQ[i]);
  145     RegisterRef RR = TA.Addr->getRegRef(DFG);
  146     if (!DFG.IsPreservingDef(TA))
  151     for (auto S : DFG.getRelatedRefs(TA.Addr->getOwner(DFG), TA))
  151     for (auto S : DFG.getRelatedRefs(TA.Addr->getOwner(DFG), TA))
  160     auto TA = DFG.addr<DefNode*>(N);
  162     if (!IsPhi && !PRI.alias(RefRR, TA.Addr->getRegRef(DFG)))
  165     Owners.insert(TA.Addr->getOwner(DFG).Id);
  174     NodeAddr<BlockNode*> BA = PA.Addr->getOwner(DFG);
  181     auto OA = DFG.addr<InstrNode*>(A), OB = DFG.addr<InstrNode*>(B);
  181     auto OA = DFG.addr<InstrNode*>(A), OB = DFG.addr<InstrNode*>(B);
  233     auto TA = DFG.addr<InstrNode*>(T);
  234     bool IsPhi = DFG.IsCode<NodeAttrs::Phi>(TA);
  236     for (NodeAddr<DefNode*> DA : TA.Addr->members_if(DefInSet, DFG)) {
  237       RegisterRef QR = DA.Addr->getRegRef(DFG);
  256           RRs.insert(DA.Addr->getRegRef(DFG));
  283     const auto DA = DFG.addr<const DefNode*>(D);
  285       DefRRs.insert(DA.Addr->getRegRef(DFG));
  303     NodeAddr<PhiNode*> PA = DA.Addr->getOwner(DFG);
  308     for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) {
  308     for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) {
  324   NodeAddr<BlockNode*> BA = IA.Addr->getOwner(DFG);
  325   NodeList Ins = BA.Addr->members(DFG);
  339       NodeList Refs = I.Addr->members(DFG);
  344         if (!PRI.alias(R.Addr->getRegRef(DFG), RefRR))
  346         if (DFG.IsDef(R)) {
  366         BA = DFG.findBlock(N->getBlock());
  371     Ins = BA.Addr->members(DFG);
  393     auto UA = DFG.addr<UseNode*>(U);
  395       RegisterRef UR = UA.Addr->getRegRef(DFG);
  404     auto DA = DFG.addr<DefNode*>(D);
  406     RegisterRef DR = DA.Addr->getRegRef(DFG);
  412     if (DFG.IsPreservingDef(DA)) {
  429   NodeAddr<FuncNode*> FA = DFG.getFunc();
  430   NodeList Blocks = FA.Addr->members(DFG);
  432     auto Ps = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG);
  432     auto Ps = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG);
  446     NodeList PhiRefs = PhiA.Addr->members(DFG);
  454       if (!DFG.IsRef<NodeAttrs::Def>(R))
  456       DRs.insert(R.Addr->getRegRef(DFG));
  468       NodeAddr<DefNode*> DA = DFG.addr<DefNode*>(DefQ[i]);
  474         NodeAddr<UseNode*> A = DFG.addr<UseNode*>(UN);
  477           RegisterRef R = PRI.normalize(A.Addr->getRegRef(DFG));
  487         NodeAddr<DefNode*> A = DFG.addr<DefNode*>(DN);
  488         for (auto T : DFG.getRelatedRefs(A.Addr->getOwner(DFG), A)) {
  488         for (auto T : DFG.getRelatedRefs(A.Addr->getOwner(DFG), A)) {
  519         auto UA = DFG.addr<UseNode*>(I.first);
  528           Covered.insert(DA.Addr->getRegRef(DFG));
  553       if (!DFG.IsRef<NodeAttrs::Use>(I) || SeenUses.count(I.Id))
  559       RegisterRef UR = PUA.Addr->getRegRef(DFG);
  565           NodeId RP = D.Addr->getOwner(DFG).Id;
  573         DefRRs.insert(D.Addr->getRegRef(DFG));
  576       for (NodeAddr<PhiUseNode*> T : DFG.getRelatedRefs(PhiA, PUA))
  584       dbgs() << "phi " << Print<NodeId>(I.first, DFG) << " -> {";
  586         dbgs() << ' ' << Print<NodeId>(R.first, DFG)
  587                << Print<RegisterAggr>(R.second, DFG);
  616     auto PA = DFG.addr<PhiNode*>(PhiUQ[i]);
  617     NodeList PUs = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG);
  617     NodeList PUs = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG);
  622       RegisterRef UR = PRI.normalize(UA.Addr->getRegRef(DFG));
  668       dbgs() << "phi " << Print<NodeId>(I.first, DFG);
  669       NodeAddr<PhiNode*> PA = DFG.addr<PhiNode*>(I.first);
  670       NodeList Ds = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Def>, DFG);
  670       NodeList Ds = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Def>, DFG);
  672         RegisterRef RR = NodeAddr<DefNode*>(Ds[0]).Addr->getRegRef(DFG);
  673         dbgs() << '<' << Print<RegisterRef>(RR, DFG) << '>';
  677       dbgs() << " -> " << Print<RefMap>(I.second, DFG) << '\n';
  686   for (NodeAddr<BlockNode*> BA : DFG.getFunc().Addr->members(DFG)) {
  686   for (NodeAddr<BlockNode*> BA : DFG.getFunc().Addr->members(DFG)) {
  688     for (NodeAddr<InstrNode*> IA : BA.Addr->members(DFG)) {
  689       for (NodeAddr<RefNode*> RA : IA.Addr->members(DFG))
  695   MachineFunction &MF = DFG.getMF();
  720   NodeAddr<FuncNode*> FA = DFG.getFunc();
  721   NodeList Blocks = FA.Addr->members(DFG);
  727     for (auto P : BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG))
  727     for (auto P : BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG))
  736              << Print<RefMap>(I.second, DFG) << '\n';
  743     NodeList Phis = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG);
  743     NodeList Phis = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG);
  750       for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) {
  750       for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) {
  768         auto PrA = DFG.addr<BlockNode*>(PUA.Addr->getPredecessor());
  782               TA.insert(D.Addr->getRegRef(DFG)).intersect(S);
  789         for (NodeAddr<PhiUseNode*> T : DFG.getRelatedRefs(PA, PUA))
  799              << Print<RefMap>(I.second, DFG) << '\n';
  806   LiveMap[&MF.front()].insert(DFG.getLiveIns());
  817         dbgs() << ' ' << Print<RegisterRef>(I, DFG);
  828         dbgs() << ' ' << Print<RegisterRef>(I, DFG);
  836   for (auto &B : DFG.getMF()) {
  853   for (auto &B : DFG.getMF())
  969     dbgs() << "  LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n';
  970     dbgs() << "  Local:  " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n';
  980     dbgs() << "  LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n';
  981     dbgs() << "  Local:  " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n';
 1000       auto DA = DFG.addr<DefNode*>(OR.first);
 1001       NodeAddr<InstrNode*> IA = DA.Addr->getOwner(DFG);
 1002       NodeAddr<BlockNode*> BA = IA.Addr->getOwner(DFG);
 1018       if (!DFG.IsPreservingDef(DA)) {
 1024         if (RRs.insert(DA.Addr->getRegRef(DFG)).hasCoverOf(LRef))
 1035         NodeAddr<InstrNode*> ITA = TA.Addr->getOwner(DFG);
 1036         NodeAddr<BlockNode*> BTA = ITA.Addr->getOwner(DFG);
 1052           RRs.insert(TA.Addr->getRegRef(DFG));
 1064     dbgs() << "  LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n';
 1065     dbgs() << "  Local:  " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n';
 1069   for (auto I : DFG.getFunc().Addr->findBlock(B, DFG).Addr->members(DFG)) {
 1069   for (auto I : DFG.getFunc().Addr->findBlock(B, DFG).Addr->members(DFG)) {
 1069   for (auto I : DFG.getFunc().Addr->findBlock(B, DFG).Addr->members(DFG)) {
 1073     for (NodeAddr<UseNode*> UA : IA.Addr->members_if(DFG.IsUse, DFG)) {
 1073     for (NodeAddr<UseNode*> UA : IA.Addr->members_if(DFG.IsUse, DFG)) {
 1076       RegisterRef RR = PRI.normalize(UA.Addr->getRegRef(DFG));
 1085     dbgs() << "  LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n';
 1086     dbgs() << "  Local:  " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n';
 1102     dbgs() << "  LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n';
 1103     dbgs() << "  Local:  " << Print<RegisterAggr>(Local, DFG) << '\n';
lib/Target/Hexagon/RDFLiveness.h
   62       return getAllReachingDefs(RefA.Addr->getRegRef(DFG), RefA, false,