Lines Matching refs:RA
87 void printRefHeader(raw_ostream &OS, const NodeAddr<RefNode*> RA, in printRefHeader() argument
89 OS << Print<NodeId>(RA.Id, G) << '<' in printRefHeader()
90 << Print<RegisterRef>(RA.Addr->getRegRef(), G) << '>'; in printRefHeader()
91 if (RA.Addr->getFlags() & NodeAttrs::Fixed) in printRefHeader()
573 bool RegisterAliasInfo::covers(RegisterRef RA, RegisterRef RB) const { in covers() argument
574 if (RA == RB) in covers()
576 if (TargetRegisterInfo::isVirtualRegister(RA.Reg)) { in covers()
578 if (RA.Reg != RB.Reg) in covers()
580 if (RA.Sub == 0) in covers()
582 return TRI.composeSubRegIndices(RA.Sub, RB.Sub) == RA.Sub; in covers()
585 assert(TargetRegisterInfo::isPhysicalRegister(RA.Reg) && in covers()
587 unsigned A = RA.Sub != 0 ? TRI.getSubReg(RA.Reg, RA.Sub) : RA.Reg; in covers()
634 bool RegisterAliasInfo::alias(RegisterRef RA, RegisterRef RB) const { in alias() argument
635 bool VirtA = TargetRegisterInfo::isVirtualRegister(RA.Reg); in alias()
637 bool PhysA = TargetRegisterInfo::isPhysicalRegister(RA.Reg); in alias()
644 if (RA.Reg != RB.Reg) in alias()
648 if (RA.Sub == 0 || RB.Sub == 0) in alias()
650 unsigned SA = TRI.getSubRegIdxSize(RA.Sub); in alias()
651 unsigned OA = TRI.getSubRegIdxOffset(RA.Sub); in alias()
663 unsigned A = RA.Sub ? TRI.getSubReg(RA.Reg, RA.Sub) : RA.Reg; in alias()
855 NodeAddr<RefNode*> RA = NA; in cloneNode() local
856 RA.Addr->setReachingDef(0); in cloneNode()
857 RA.Addr->setSibling(0); in cloneNode()
1056 NodeAddr<RefNode*> RA) const { in getRelatedRefs()
1057 assert(IA.Id != 0 && RA.Id != 0); in getRelatedRefs()
1060 NodeId Start = RA.Id; in getRelatedRefs()
1062 Refs.push_back(RA); in getRelatedRefs()
1063 RA = getNextRelated(IA, RA); in getRelatedRefs()
1064 } while (RA.Id != 0 && RA.Id != Start); in getRelatedRefs()
1083 NodeAddr<RefNode*> RA) const { in getNextRelated()
1084 assert(IA.Id != 0 && RA.Id != 0); in getNextRelated()
1086 auto Related = [RA](NodeAddr<RefNode*> TA) -> bool { in getNextRelated()
1087 if (TA.Addr->getKind() != RA.Addr->getKind()) in getNextRelated()
1089 if (TA.Addr->getRegRef() != RA.Addr->getRegRef()) in getNextRelated()
1093 auto RelatedStmt = [&Related,RA](NodeAddr<RefNode*> TA) -> bool { in getNextRelated()
1095 &RA.Addr->getOp() == &TA.Addr->getOp(); in getNextRelated()
1097 auto RelatedPhi = [&Related,RA](NodeAddr<RefNode*> TA) -> bool { in getNextRelated()
1104 const NodeAddr<const PhiUseNode*> RUA = RA; in getNextRelated()
1108 RegisterRef RR = RA.Addr->getRegRef(); in getNextRelated()
1110 return RA.Addr->getNextRef(RR, RelatedStmt, true, *this); in getNextRelated()
1111 return RA.Addr->getNextRef(RR, RelatedPhi, true, *this); in getNextRelated()
1121 DataFlowGraph::locateNextRef(NodeAddr<InstrNode*> IA, NodeAddr<RefNode*> RA, in locateNextRef() argument
1123 assert(IA.Id != 0 && RA.Id != 0); in locateNextRef()
1126 NodeId Start = RA.Id; in locateNextRef()
1128 NA = getNextRelated(IA, RA); in locateNextRef()
1133 RA = NA; in locateNextRef()
1137 return std::make_pair(RA, NA); in locateNextRef()
1138 return std::make_pair(RA, NodeAddr<RefNode*>()); in locateNextRef()
1144 NodeAddr<RefNode*> RA, bool Create) { in getNextShadow() argument
1145 assert(IA.Id != 0 && RA.Id != 0); in getNextShadow()
1147 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1151 auto Loc = locateNextRef(IA, RA, IsShadow); in getNextShadow()
1156 NodeAddr<RefNode*> NA = cloneNode(RA); in getNextShadow()
1165 NodeAddr<RefNode*> RA) const { in getNextShadow()
1166 assert(IA.Id != 0 && RA.Id != 0); in getNextShadow()
1167 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1171 return locateNextRef(IA, RA, IsShadow).second; in getNextShadow()
1287 for (NodeAddr<RefNode*> RA : IA.Addr->members(*this)) in buildBlockRefs()
1288 Refs.insert(RA.Addr->getRegRef()); in buildBlockRefs()
1315 for (NodeAddr<RefNode*> RA : IA.Addr->members_if(IsDef, *this)) in recordDefsForDF()
1316 Defs.insert(RA.Addr->getRegRef()); in recordDefsForDF()
1471 for (NodeAddr<RefNode*> RA : Refs) { in removeUnusedPhis()
1472 if (NodeId RD = RA.Addr->getReachingDef()) { in removeUnusedPhis()
1478 if (RA.Addr->isDef()) in removeUnusedPhis()
1479 unlinkDef(RA, true); in removeUnusedPhis()
1481 unlinkUse(RA, true); in removeUnusedPhis()
1541 for (NodeAddr<RefNode*> RA : SA.Addr->members(*this)) { in linkStmtRefs()
1542 uint16_t Kind = RA.Addr->getKind(); in linkStmtRefs()
1544 RegisterRef RR = RA.Addr->getRegRef(); in linkStmtRefs()
1555 linkRefUp<UseNode*>(SA, RA, DS); in linkStmtRefs()
1557 linkRefUp<DefNode*>(SA, RA, DS); in linkStmtRefs()
1672 auto RA = addr<RefNode*>(N); in unlinkDefDF() local
1674 Res.push_back(RA); in unlinkDefDF()
1675 N = RA.Addr->getSibling(); in unlinkDefDF()