Lines Matching refs:RA

111 static void printRefHeader(raw_ostream &OS, const Ref RA,  in printRefHeader()  argument
113 OS << Print(RA.Id, G) << '<' << Print(RA.Addr->getRegRef(G), G) << '>'; in printRefHeader()
114 if (RA.Addr->getFlags() & NodeAttrs::Fixed) in printRefHeader()
789 Ref RA = NA; in cloneNode() local
790 RA.Addr->setReachingDef(0); in cloneNode()
791 RA.Addr->setSibling(0); in cloneNode()
1136 NodeList DataFlowGraph::getRelatedRefs(Instr IA, Ref RA) const { in getRelatedRefs()
1137 assert(IA.Id != 0 && RA.Id != 0); in getRelatedRefs()
1140 NodeId Start = RA.Id; in getRelatedRefs()
1142 Refs.push_back(RA); in getRelatedRefs()
1143 RA = getNextRelated(IA, RA); in getRelatedRefs()
1144 } while (RA.Id != 0 && RA.Id != Start); in getRelatedRefs()
1163 Ref DataFlowGraph::getNextRelated(Instr IA, Ref RA) const { in getNextRelated()
1164 assert(IA.Id != 0 && RA.Id != 0); in getNextRelated()
1166 auto IsRelated = [this, RA](Ref TA) -> bool { in getNextRelated()
1167 if (TA.Addr->getKind() != RA.Addr->getKind()) in getNextRelated()
1170 RA.Addr->getRegRef(*this))) { in getNextRelated()
1176 RegisterRef RR = RA.Addr->getRegRef(*this); in getNextRelated()
1178 auto Cond = [&IsRelated, RA](Ref TA) -> bool { in getNextRelated()
1179 return IsRelated(TA) && &RA.Addr->getOp() == &TA.Addr->getOp(); in getNextRelated()
1181 return RA.Addr->getNextRef(RR, Cond, true, *this); in getNextRelated()
1185 auto Cond = [&IsRelated, RA](Ref TA) -> bool { in getNextRelated()
1192 PhiUse(RA).Addr->getPredecessor(); in getNextRelated()
1194 return RA.Addr->getNextRef(RR, Cond, true, *this); in getNextRelated()
1203 std::pair<Ref, Ref> DataFlowGraph::locateNextRef(Instr IA, Ref RA, in locateNextRef() argument
1205 assert(IA.Id != 0 && RA.Id != 0); in locateNextRef()
1208 NodeId Start = RA.Id; in locateNextRef()
1210 NA = getNextRelated(IA, RA); in locateNextRef()
1215 RA = NA; in locateNextRef()
1219 return std::make_pair(RA, NA); in locateNextRef()
1220 return std::make_pair(RA, Ref()); in locateNextRef()
1225 Ref DataFlowGraph::getNextShadow(Instr IA, Ref RA, bool Create) { in getNextShadow() argument
1226 assert(IA.Id != 0 && RA.Id != 0); in getNextShadow()
1228 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1232 auto Loc = locateNextRef(IA, RA, IsShadow); in getNextShadow()
1237 Ref NA = cloneNode(RA); in getNextShadow()
1399 for (Ref RA : IA.Addr->members_if(IsDef, *this)) { in recordDefsForDF() local
1400 RegisterRef RR = RA.Addr->getRegRef(*this); in recordDefsForDF()
1486 for (Ref RA : Refs) { in removeUnusedPhis() local
1487 if (NodeId RD = RA.Addr->getReachingDef()) { in removeUnusedPhis()
1493 if (RA.Addr->isDef()) in removeUnusedPhis()
1494 unlinkDef(RA, true); in removeUnusedPhis()
1496 unlinkUse(RA, true); in removeUnusedPhis()
1557 for (Ref RA : SA.Addr->members_if(P, *this)) { in linkStmtRefs() local
1558 uint16_t Kind = RA.Addr->getKind(); in linkStmtRefs()
1560 RegisterRef RR = RA.Addr->getRegRef(*this); in linkStmtRefs()
1572 linkRefUp<UseNode *>(SA, RA, DS); in linkStmtRefs()
1574 linkRefUp<DefNode *>(SA, RA, DS); in linkStmtRefs()
1586 auto IsClobber = [](Ref RA) -> bool { in linkBlockRefs() argument
1587 return IsDef(RA) && (RA.Addr->getFlags() & NodeAttrs::Clobbering); in linkBlockRefs()
1589 auto IsNoClobber = [](Ref RA) -> bool { in linkBlockRefs() argument
1590 return IsDef(RA) && !(RA.Addr->getFlags() & NodeAttrs::Clobbering); in linkBlockRefs()
1640 Ref RA = IA.Addr->getFirstMember(*this); in linkBlockRefs() local
1641 assert(RA.Id != 0); in linkBlockRefs()
1642 if (EHLiveIns.hasCoverOf(RA.Addr->getRegRef(*this))) in linkBlockRefs()
1714 auto RA = addr<RefNode *>(N); in unlinkDefDF() local
1716 Res.push_back(RA); in unlinkDefDF()
1717 N = RA.Addr->getSibling(); in unlinkDefDF()