Lines Matching refs:DFG
128 auto SNA = DFG.addr<RefNode*>(Start); in getAllReachingDefs()
132 for (auto S : DFG.getRelatedRefs(RefA.Addr->getOwner(DFG), RefA)) in getAllReachingDefs()
144 auto TA = DFG.addr<DefNode*>(DefQ[i]); in getAllReachingDefs()
148 RegisterRef RR = TA.Addr->getRegRef(DFG); in getAllReachingDefs()
149 if (!DFG.IsPreservingDef(TA)) in getAllReachingDefs()
154 for (auto S : DFG.getRelatedRefs(TA.Addr->getOwner(DFG), TA)) in getAllReachingDefs()
168 NodeAddr<BlockNode*> BA = PA.Addr->getOwner(DFG); in getAllReachingDefs()
179 auto TA = DFG.addr<DefNode*>(N); in getAllReachingDefs()
181 if (!IsPhi && !PRI.alias(RefRR, TA.Addr->getRegRef(DFG))) in getAllReachingDefs()
184 NodeAddr<InstrNode*> IA = TA.Addr->getOwner(DFG); in getAllReachingDefs()
192 NodeAddr<InstrNode*> OA = DFG.addr<InstrNode*>(A); in getAllReachingDefs()
193 NodeAddr<InstrNode*> OB = DFG.addr<InstrNode*>(B); in getAllReachingDefs()
273 auto TA = DFG.addr<InstrNode*>(T); in getAllReachingDefs()
274 bool IsPhi = DFG.IsCode<NodeAttrs::Phi>(TA); in getAllReachingDefs()
276 for (NodeAddr<DefNode*> DA : TA.Addr->members_if(DefInSet, DFG)) { in getAllReachingDefs()
277 RegisterRef QR = DA.Addr->getRegRef(DFG); in getAllReachingDefs()
296 RRs.insert(DA.Addr->getRegRef(DFG)); in getAllReachingDefs()
323 const auto DA = DFG.addr<const DefNode*>(D); in getAllReachingDefsRecImpl()
325 DefRRs.insert(DA.Addr->getRegRef(DFG)); in getAllReachingDefsRecImpl()
343 NodeAddr<PhiNode*> PA = DA.Addr->getOwner(DFG); in getAllReachingDefsRecImpl()
348 for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) { in getAllReachingDefsRecImpl()
364 NodeAddr<BlockNode*> BA = IA.Addr->getOwner(DFG); in getNearestAliasedRef()
365 NodeList Ins = BA.Addr->members(DFG); in getNearestAliasedRef()
379 NodeList Refs = I.Addr->members(DFG); in getNearestAliasedRef()
384 if (!PRI.alias(R.Addr->getRegRef(DFG), RefRR)) in getNearestAliasedRef()
386 if (DFG.IsDef(R)) { in getNearestAliasedRef()
406 BA = DFG.findBlock(N->getBlock()); in getNearestAliasedRef()
411 Ins = BA.Addr->members(DFG); in getNearestAliasedRef()
433 auto UA = DFG.addr<UseNode*>(U); in getAllReachedUses()
435 RegisterRef UR = UA.Addr->getRegRef(DFG); in getAllReachedUses()
444 auto DA = DFG.addr<DefNode*>(D); in getAllReachedUses()
446 RegisterRef DR = DA.Addr->getRegRef(DFG); in getAllReachedUses()
452 if (DFG.IsPreservingDef(DA)) { in getAllReachedUses()
469 NodeAddr<FuncNode*> FA = DFG.getFunc(); in computePhiInfo()
470 NodeList Blocks = FA.Addr->members(DFG); in computePhiInfo()
472 auto Ps = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG); in computePhiInfo()
486 NodeList PhiRefs = PhiA.Addr->members(DFG); in computePhiInfo()
494 if (!DFG.IsRef<NodeAttrs::Def>(R)) in computePhiInfo()
496 DRs.insert(R.Addr->getRegRef(DFG)); in computePhiInfo()
508 NodeAddr<DefNode*> DA = DFG.addr<DefNode*>(DefQ[i]); in computePhiInfo()
514 NodeAddr<UseNode*> A = DFG.addr<UseNode*>(UN); in computePhiInfo()
517 RegisterRef R = A.Addr->getRegRef(DFG); in computePhiInfo()
527 NodeAddr<DefNode*> A = DFG.addr<DefNode*>(DN); in computePhiInfo()
528 for (auto T : DFG.getRelatedRefs(A.Addr->getOwner(DFG), A)) { in computePhiInfo()
559 auto UA = DFG.addr<UseNode*>(I.first); in computePhiInfo()
568 Covered.insert(DA.Addr->getRegRef(DFG)); in computePhiInfo()
593 if (!DFG.IsRef<NodeAttrs::Use>(I) || SeenUses.count(I.Id)) in computePhiInfo()
599 RegisterRef UR = PUA.Addr->getRegRef(DFG); in computePhiInfo()
605 NodeId RP = D.Addr->getOwner(DFG).Id; in computePhiInfo()
613 DefRRs.insert(D.Addr->getRegRef(DFG)); in computePhiInfo()
616 for (NodeAddr<PhiUseNode*> T : DFG.getRelatedRefs(PhiA, PUA)) in computePhiInfo()
624 dbgs() << "phi " << Print<NodeId>(I.first, DFG) << " -> {"; in computePhiInfo()
626 dbgs() << ' ' << Print<NodeId>(R.first, DFG) in computePhiInfo()
627 << Print<RegisterAggr>(R.second, DFG); in computePhiInfo()
673 auto PA = DFG.addr<PhiNode*>(PhiUQ[i]); in computePhiInfo()
674 NodeList PUs = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG); in computePhiInfo()
679 RegisterRef UR = UA.Addr->getRegRef(DFG); in computePhiInfo()
725 dbgs() << "phi " << Print<NodeId>(I.first, DFG); in computePhiInfo()
726 NodeAddr<PhiNode*> PA = DFG.addr<PhiNode*>(I.first); in computePhiInfo()
727 NodeList Ds = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Def>, DFG); in computePhiInfo()
729 RegisterRef RR = NodeAddr<DefNode*>(Ds[0]).Addr->getRegRef(DFG); in computePhiInfo()
730 dbgs() << '<' << Print<RegisterRef>(RR, DFG) << '>'; in computePhiInfo()
734 dbgs() << " -> " << Print<RefMap>(I.second, DFG) << '\n'; in computePhiInfo()
743 for (NodeAddr<BlockNode*> BA : DFG.getFunc().Addr->members(DFG)) { in computeLiveIns()
745 for (NodeAddr<InstrNode*> IA : BA.Addr->members(DFG)) { in computeLiveIns()
746 for (NodeAddr<RefNode*> RA : IA.Addr->members(DFG)) in computeLiveIns()
752 MachineFunction &MF = DFG.getMF(); in computeLiveIns()
777 NodeAddr<FuncNode*> FA = DFG.getFunc(); in computeLiveIns()
778 NodeList Blocks = FA.Addr->members(DFG); in computeLiveIns()
784 for (auto P : BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG)) in computeLiveIns()
793 << Print<RefMap>(I.second, DFG) << '\n'; in computeLiveIns()
800 NodeList Phis = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG); in computeLiveIns()
807 for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) { in computeLiveIns()
825 auto PrA = DFG.addr<BlockNode*>(PUA.Addr->getPredecessor()); in computeLiveIns()
839 TA.insert(D.Addr->getRegRef(DFG)).intersect(S); in computeLiveIns()
846 for (NodeAddr<PhiUseNode*> T : DFG.getRelatedRefs(PA, PUA)) in computeLiveIns()
856 << Print<RefMap>(I.second, DFG) << '\n'; in computeLiveIns()
863 LiveMap[&MF.front()].insert(DFG.getLiveIns()); in computeLiveIns()
874 dbgs() << ' ' << Print<RegisterRef>(I, DFG); in computeLiveIns()
885 dbgs() << ' ' << Print<RegisterRef>(I, DFG); in computeLiveIns()
893 for (auto &B : DFG.getMF()) { in resetLiveIns()
910 for (auto &B : DFG.getMF()) in resetKills()
1026 dbgs() << " LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n'; in traverse()
1027 dbgs() << " Local: " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n'; in traverse()
1037 dbgs() << " LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n'; in traverse()
1038 dbgs() << " Local: " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n'; in traverse()
1057 auto DA = DFG.addr<DefNode*>(OR.first); in traverse()
1058 NodeAddr<InstrNode*> IA = DA.Addr->getOwner(DFG); in traverse()
1059 NodeAddr<BlockNode*> BA = IA.Addr->getOwner(DFG); in traverse()
1075 if (!DFG.IsPreservingDef(DA)) { in traverse()
1081 if (RRs.insert(DA.Addr->getRegRef(DFG)).hasCoverOf(LRef)) in traverse()
1092 NodeAddr<InstrNode*> ITA = TA.Addr->getOwner(DFG); in traverse()
1093 NodeAddr<BlockNode*> BTA = ITA.Addr->getOwner(DFG); in traverse()
1109 RRs.insert(TA.Addr->getRegRef(DFG)); in traverse()
1121 dbgs() << " LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n'; in traverse()
1122 dbgs() << " Local: " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n'; in traverse()
1126 for (auto I : DFG.getFunc().Addr->findBlock(B, DFG).Addr->members(DFG)) { in traverse()
1130 for (NodeAddr<UseNode*> UA : IA.Addr->members_if(DFG.IsUse, DFG)) { in traverse()
1133 RegisterRef RR = UA.Addr->getRegRef(DFG); in traverse()
1142 dbgs() << " LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n'; in traverse()
1143 dbgs() << " Local: " << Print<RegisterAggr>(LiveMap[B], DFG) << '\n'; in traverse()
1159 dbgs() << " LiveIn: " << Print<RefMap>(LiveIn, DFG) << '\n'; in traverse()
1160 dbgs() << " Local: " << Print<RegisterAggr>(Local, DFG) << '\n'; in traverse()