reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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,