Lines Matching refs:DFG
124 auto SNA = DFG.addr<RefNode *>(Start); in getAllReachingDefs()
128 for (auto S : DFG.getRelatedRefs(RefA.Addr->getOwner(DFG), RefA)) in getAllReachingDefs()
140 auto TA = DFG.addr<DefNode *>(DefQ[i]); in getAllReachingDefs()
144 RegisterRef RR = TA.Addr->getRegRef(DFG); in getAllReachingDefs()
145 if (!DFG.IsPreservingDef(TA)) in getAllReachingDefs()
150 for (auto S : DFG.getRelatedRefs(TA.Addr->getOwner(DFG), TA)) in getAllReachingDefs()
164 NodeAddr<BlockNode *> BA = PA.Addr->getOwner(DFG); in getAllReachingDefs()
175 auto TA = DFG.addr<DefNode *>(N); in getAllReachingDefs()
177 if (!IsPhi && !PRI.alias(RefRR, TA.Addr->getRegRef(DFG))) in getAllReachingDefs()
180 NodeAddr<InstrNode *> IA = TA.Addr->getOwner(DFG); in getAllReachingDefs()
188 NodeAddr<InstrNode *> OA = DFG.addr<InstrNode *>(A); in getAllReachingDefs()
189 NodeAddr<InstrNode *> OB = DFG.addr<InstrNode *>(B); in getAllReachingDefs()
268 auto TA = DFG.addr<InstrNode *>(T); in getAllReachingDefs()
269 bool IsPhi = DFG.IsCode<NodeAttrs::Phi>(TA); in getAllReachingDefs()
271 for (NodeAddr<DefNode *> DA : TA.Addr->members_if(DefInSet, DFG)) { in getAllReachingDefs()
272 RegisterRef QR = DA.Addr->getRegRef(DFG); in getAllReachingDefs()
291 RRs.insert(DA.Addr->getRegRef(DFG)); in getAllReachingDefs()
319 const auto DA = DFG.addr<const DefNode *>(D); in getAllReachingDefsRecImpl()
321 DefRRs.insert(DA.Addr->getRegRef(DFG)); in getAllReachingDefsRecImpl()
339 NodeAddr<PhiNode *> PA = DA.Addr->getOwner(DFG); in getAllReachingDefsRecImpl()
343 for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) { in getAllReachingDefsRecImpl()
359 NodeAddr<BlockNode *> BA = IA.Addr->getOwner(DFG); in getNearestAliasedRef()
360 NodeList Ins = BA.Addr->members(DFG); in getNearestAliasedRef()
374 NodeList Refs = I.Addr->members(DFG); in getNearestAliasedRef()
379 if (!PRI.alias(R.Addr->getRegRef(DFG), RefRR)) in getNearestAliasedRef()
381 if (DFG.IsDef(R)) { in getNearestAliasedRef()
401 BA = DFG.findBlock(N->getBlock()); in getNearestAliasedRef()
406 Ins = BA.Addr->members(DFG); in getNearestAliasedRef()
428 auto UA = DFG.addr<UseNode *>(U); in getAllReachedUses()
430 RegisterRef UR = UA.Addr->getRegRef(DFG); in getAllReachedUses()
439 auto DA = DFG.addr<DefNode *>(D); in getAllReachedUses()
441 RegisterRef DR = DA.Addr->getRegRef(DFG); in getAllReachedUses()
447 if (DFG.IsPreservingDef(DA)) { in getAllReachedUses()
464 NodeAddr<FuncNode *> FA = DFG.getFunc(); in computePhiInfo()
465 NodeList Blocks = FA.Addr->members(DFG); in computePhiInfo()
467 auto Ps = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG); in computePhiInfo()
482 NodeList PhiRefs = PhiA.Addr->members(DFG); in computePhiInfo()
490 if (!DFG.IsRef<NodeAttrs::Def>(R)) in computePhiInfo()
492 DRs.insert(R.Addr->getRegRef(DFG)); in computePhiInfo()
504 NodeAddr<DefNode *> DA = DFG.addr<DefNode *>(DefQ[i]); in computePhiInfo()
510 NodeAddr<UseNode *> A = DFG.addr<UseNode *>(UN); in computePhiInfo()
513 RegisterRef R = A.Addr->getRegRef(DFG); in computePhiInfo()
523 NodeAddr<DefNode *> A = DFG.addr<DefNode *>(DN); in computePhiInfo()
524 for (auto T : DFG.getRelatedRefs(A.Addr->getOwner(DFG), A)) { in computePhiInfo()
555 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(I.first, DFG) << " -> {"; in computePhiInfo()
626 dbgs() << ' ' << Print(R.first, DFG) << Print(R.second, DFG); in computePhiInfo()
674 auto PA = DFG.addr<PhiNode *>(PhiUQ[i]); in computePhiInfo()
675 NodeList PUs = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG); in computePhiInfo()
680 RegisterRef UR = UA.Addr->getRegRef(DFG); in computePhiInfo()
729 dbgs() << "phi " << Print(I.first, DFG); in computePhiInfo()
730 NodeAddr<PhiNode *> PA = DFG.addr<PhiNode *>(I.first); in computePhiInfo()
731 NodeList Ds = PA.Addr->members_if(DFG.IsRef<NodeAttrs::Def>, DFG); in computePhiInfo()
733 RegisterRef RR = NodeAddr<DefNode *>(Ds[0]).Addr->getRegRef(DFG); in computePhiInfo()
734 dbgs() << '<' << Print(RR, DFG) << '>'; in computePhiInfo()
738 dbgs() << " -> " << Print(I.second, DFG) << '\n'; in computePhiInfo()
747 for (NodeAddr<BlockNode *> BA : DFG.getFunc().Addr->members(DFG)) { in computeLiveIns()
749 for (NodeAddr<InstrNode *> IA : BA.Addr->members(DFG)) { in computeLiveIns()
750 for (NodeAddr<RefNode *> RA : IA.Addr->members(DFG)) in computeLiveIns()
756 MachineFunction &MF = DFG.getMF(); in computeLiveIns()
781 NodeAddr<FuncNode *> FA = DFG.getFunc(); in computeLiveIns()
782 NodeList Blocks = FA.Addr->members(DFG); in computeLiveIns()
788 for (auto P : BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG)) { in computeLiveIns()
798 << Print(I.second, DFG) << '\n'; in computeLiveIns()
805 NodeList Phis = BA.Addr->members_if(DFG.IsCode<NodeAttrs::Phi>, DFG); in computeLiveIns()
812 for (auto U : PA.Addr->members_if(DFG.IsRef<NodeAttrs::Use>, DFG)) { in computeLiveIns()
830 auto PrA = DFG.addr<BlockNode *>(PUA.Addr->getPredecessor()); in computeLiveIns()
844 TA.insert(D.Addr->getRegRef(DFG)).intersect(S); in computeLiveIns()
851 for (NodeAddr<PhiUseNode *> T : DFG.getRelatedRefs(PA, PUA)) in computeLiveIns()
861 << Print(I.second, DFG) << '\n'; in computeLiveIns()
868 LiveMap[&MF.front()].insert(DFG.getLiveIns()); in computeLiveIns()
879 dbgs() << ' ' << Print(I, DFG); in computeLiveIns()
889 dbgs() << ' ' << Print(I, DFG); in computeLiveIns()
896 for (auto &B : DFG.getMF()) { in resetLiveIns()
911 for (auto &B : DFG.getMF()) in resetKills()
1026 dbgs() << " LiveIn: " << Print(LiveIn, DFG) << '\n'; in traverse()
1027 dbgs() << " Local: " << Print(LiveMap[B], DFG) << '\n'; in traverse()
1037 dbgs() << " LiveIn: " << Print(LiveIn, DFG) << '\n'; in traverse()
1038 dbgs() << " Local: " << Print(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(LiveIn, DFG) << '\n'; in traverse()
1122 dbgs() << " Local: " << Print(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(LiveIn, DFG) << '\n'; in traverse()
1143 dbgs() << " Local: " << Print(LiveMap[B], DFG) << '\n'; in traverse()
1159 dbgs() << " LiveIn: " << Print(LiveIn, DFG) << '\n'; in traverse()
1160 dbgs() << " Local: " << Print(Local, DFG) << '\n'; in traverse()