Lines Matching refs:Addr

69   uint16_t Attrs = NA.Addr->getAttrs();  in operator <<()
111 << Print<RegisterRef>(RA.Addr->getRegRef(G), G) << '>'; in printRefHeader()
112 if (RA.Addr->getFlags() & NodeAttrs::Fixed) in printRefHeader()
119 if (NodeId N = P.Obj.Addr->getReachingDef()) in operator <<()
122 if (NodeId N = P.Obj.Addr->getReachedDef()) in operator <<()
125 if (NodeId N = P.Obj.Addr->getReachedUse()) in operator <<()
128 if (NodeId N = P.Obj.Addr->getSibling()) in operator <<()
136 if (NodeId N = P.Obj.Addr->getReachingDef()) in operator <<()
139 if (NodeId N = P.Obj.Addr->getSibling()) in operator <<()
148 if (NodeId N = P.Obj.Addr->getReachingDef()) in operator <<()
151 if (NodeId N = P.Obj.Addr->getPredecessor()) in operator <<()
154 if (NodeId N = P.Obj.Addr->getSibling()) in operator <<()
160 switch (P.Obj.Addr->getKind()) { in operator <<()
165 if (P.Obj.Addr->getFlags() & NodeAttrs::PhiRef) in operator <<()
220 << PrintListV<RefNode*>(P.Obj.Addr->members(P.G), P.G) << ']'; in operator <<()
225 const MachineInstr &MI = *P.Obj.Addr->getCode(); in operator <<()
245 OS << " [" << PrintListV<RefNode*>(P.Obj.Addr->members(P.G), P.G) << ']'; in operator <<()
251 switch (P.Obj.Addr->getKind()) { in operator <<()
267 MachineBasicBlock *BB = P.Obj.Addr->getCode(); in operator <<()
293 for (auto I : P.Obj.Addr->members(P.G)) in operator <<()
300 << P.Obj.Addr->getCode()->getName() << '\n'; in operator <<()
301 for (auto I : P.Obj.Addr->members(P.G)) in operator <<()
324 << '<' << Print<RegisterRef>(I->Addr->getRegRef(P.G), P.G) << '>'; in operator <<()
401 NA.Addr->Next = Nx; in append()
437 while (NA.Addr != this) { in getOwner()
438 if (NA.Addr->getType() == NodeAttrs::Code) in getOwner()
440 NA = G.addr<NodeBase*>(NA.Addr->getNext()); in getOwner()
448 Ref.Sib = DA.Addr->getReachedDef(); in linkToDef()
449 DA.Addr->setReachedDef(Self); in linkToDef()
455 Ref.Sib = DA.Addr->getReachedUse(); in linkToDef()
456 DA.Addr->setReachedUse(Self); in linkToDef()
477 ML.Addr->append(NA); in addMember()
481 NA.Addr->setNext(Self); in addMember()
489 MA.Addr->append(NA); in addMemberAfter()
506 Code.FirstM = MA.Addr->getNext(); in removeMember()
511 while (MA.Addr != this) { in removeMember()
512 NodeId MX = MA.Addr->getNext(); in removeMember()
514 MA.Addr->setNext(NA.Addr->getNext()); in removeMember()
536 while (NA.Addr != this) { in getOwner()
537 assert(NA.Addr->getType() == NodeAttrs::Code); in getOwner()
538 if (NA.Addr->getKind() == NodeAttrs::Block) in getOwner()
540 NA = G.addr<NodeBase*>(NA.Addr->getNext()); in getOwner()
553 assert(M.Addr->getType() == NodeAttrs::Code); in addPhi()
554 if (M.Addr->getKind() == NodeAttrs::Stmt) { in addPhi()
558 PA.Addr->setNext(M.Id); in addPhi()
561 assert(M.Addr->getKind() == NodeAttrs::Phi); in addPhi()
565 MN = G.addr<NodeBase*>(M.Addr->getNext()); in addPhi()
566 assert(MN.Addr->getType() == NodeAttrs::Code); in addPhi()
567 } while (MN.Addr->getKind() == NodeAttrs::Phi); in addPhi()
579 return NodeAddr<BlockNode*>(NA).Addr->getCode() == BB; in findBlock()
782 P.Addr->init(); in newNode()
783 P.Addr->setAttrs(Attrs); in newNode()
791 memcpy(NA.Addr, B.Addr, sizeof(NodeBase)); in cloneNode()
793 if (NA.Addr->getType() == NodeAttrs::Ref) { in cloneNode()
795 RA.Addr->setReachingDef(0); in cloneNode()
796 RA.Addr->setSibling(0); in cloneNode()
797 if (NA.Addr->getKind() == NodeAttrs::Def) { in cloneNode()
799 DA.Addr->setReachedDef(0); in cloneNode()
800 DA.Addr->setReachedUse(0); in cloneNode()
811 UA.Addr->setRegRef(&Op, *this); in newUse()
819 PUA.Addr->setRegRef(RR, *this); in newPhiUse()
820 PUA.Addr->setPredecessor(PredB.Id); in newPhiUse()
827 DA.Addr->setRegRef(&Op, *this); in newDef()
835 DA.Addr->setRegRef(RR, *this); in newDef()
841 Owner.Addr->addPhi(PA, *this); in newPhi()
848 SA.Addr->setCode(MI); in newStmt()
849 Owner.Addr->addMember(SA, *this); in newStmt()
856 BA.Addr->setCode(BB); in newBlock()
857 Owner.Addr->addMember(BA, *this); in newBlock()
863 FA.Addr->setCode(MF); in newFunc()
885 NodeAddr<BlockNode*> EA = Func.Addr->getEntryBlock(*this); in build()
886 NodeList Blocks = Func.Addr->members(*this); in build()
891 for (NodeAddr<InstrNode*> IA : BA.Addr->members(*this)) in build()
892 for (NodeAddr<RefNode*> RA : IA.Addr->members(*this)) in build()
893 AllRefs.insert(RA.Addr->getRegRef(*this)); in build()
897 MachineBasicBlock &EntryB = *EA.Addr->getCode(); in build()
913 PA.Addr->addMember(DA, *this); in build()
924 const MachineBasicBlock &B = *BA.Addr->getCode(); in build()
939 PA.Addr->addMember(DA, *this); in build()
943 PA.Addr->addMember(PUA, *this); in build()
1043 for (NodeAddr<DefNode*> DA : IA.Addr->members_if(IsDef, *this)) { in pushClobbers()
1046 if (!(DA.Addr->getFlags() & NodeAttrs::Clobbering)) in pushClobbers()
1051 RegisterRef RR = PDA.Addr->getRegRef(*this); in pushClobbers()
1089 for (NodeAddr<DefNode*> DA : IA.Addr->members_if(IsDef, *this)) { in pushDefs()
1092 if (DA.Addr->getFlags() & NodeAttrs::Clobbering) in pushDefs()
1097 RegisterRef RR = PDA.Addr->getRegRef(*this); in pushDefs()
1102 MachineInstr *MI = NodeAddr<StmtNode*>(IA).Addr->getCode(); in pushDefs()
1156 if (TA.Addr->getKind() != RA.Addr->getKind()) in getNextRelated()
1158 if (TA.Addr->getRegRef(*this) != RA.Addr->getRegRef(*this)) in getNextRelated()
1164 &RA.Addr->getOp() == &TA.Addr->getOp(); in getNextRelated()
1169 if (TA.Addr->getKind() != NodeAttrs::Use) in getNextRelated()
1174 return TUA.Addr->getPredecessor() == RUA.Addr->getPredecessor(); in getNextRelated()
1177 RegisterRef RR = RA.Addr->getRegRef(*this); in getNextRelated()
1178 if (IA.Addr->getKind() == NodeAttrs::Stmt) in getNextRelated()
1179 return RA.Addr->getNextRef(RR, RelatedStmt, true, *this); in getNextRelated()
1180 return RA.Addr->getNextRef(RR, RelatedPhi, true, *this); in getNextRelated()
1216 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1218 return TA.Addr->getFlags() == Flags; in getNextShadow()
1226 NA.Addr->setFlags(Flags | NodeAttrs::Shadow); in getNextShadow()
1227 IA.Addr->addMemberAfter(Loc.first, NA, *this); in getNextShadow()
1236 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1238 return TA.Addr->getFlags() == Flags; in getNextShadow()
1308 SA.Addr->addMember(DA, *this); in buildStmt()
1322 SA.Addr->addMember(DA, *this); in buildStmt()
1357 SA.Addr->addMember(DA, *this); in buildStmt()
1374 SA.Addr->addMember(UA, *this); in buildStmt()
1385 MachineBasicBlock *BB = BA.Addr->getCode(); in recordDefsForDF()
1397 for (NodeAddr<InstrNode*> IA : BA.Addr->members(*this)) in recordDefsForDF()
1398 for (NodeAddr<RefNode*> RA : IA.Addr->members_if(IsDef, *this)) in recordDefsForDF()
1399 Defs.insert(RA.Addr->getRegRef(*this)); in recordDefsForDF()
1467 const MachineBasicBlock *MBB = BA.Addr->getCode(); in buildPhis()
1490 PA.Addr->addMember(DA, *this); in buildPhis()
1497 PA.Addr->addMember(PUA, *this); in buildPhis()
1517 for (NodeAddr<BlockNode*> BA : Func.Addr->members(*this)) { in removeUnusedPhis()
1518 for (auto P : BA.Addr->members_if(IsPhi, *this)) in removeUnusedPhis()
1524 if (M.Addr->getKind() != NodeAttrs::Def) in removeUnusedPhis()
1527 if (DA.Addr->getReachedDef() != 0 || DA.Addr->getReachedUse() != 0) in removeUnusedPhis()
1539 NodeList Refs = PA.Addr->members(*this); in removeUnusedPhis()
1543 if (NodeId RD = RA.Addr->getReachingDef()) { in removeUnusedPhis()
1545 NodeAddr<InstrNode*> OA = RDA.Addr->getOwner(*this); in removeUnusedPhis()
1549 if (RA.Addr->isDef()) in removeUnusedPhis()
1554 NodeAddr<BlockNode*> BA = PA.Addr->getOwner(*this); in removeUnusedPhis()
1555 BA.Addr->removeMember(PA, *this); in removeUnusedPhis()
1567 RegisterRef RR = TA.Addr->getRegRef(*this); in linkRefUp()
1574 RegisterRef QR = I->Addr->getRegRef(*this); in linkRefUp()
1594 TAP.Addr->setFlags(TAP.Addr->getFlags() | NodeAttrs::Shadow); in linkRefUp()
1599 TAP.Addr->linkToDef(TAP.Id, RDA); in linkRefUp()
1615 for (NodeAddr<RefNode*> RA : SA.Addr->members_if(P, *this)) { in linkStmtRefs()
1616 uint16_t Kind = RA.Addr->getKind(); in linkStmtRefs()
1618 RegisterRef RR = RA.Addr->getRegRef(*this); in linkStmtRefs()
1645 return IsDef(RA) && (RA.Addr->getFlags() & NodeAttrs::Clobbering); in linkBlockRefs()
1648 return IsDef(RA) && !(RA.Addr->getFlags() & NodeAttrs::Clobbering); in linkBlockRefs()
1651 assert(BA.Addr && "block node address is needed to create a data-flow link"); in linkBlockRefs()
1655 for (NodeAddr<InstrNode*> IA : BA.Addr->members(*this)) { in linkBlockRefs()
1658 if (IA.Addr->getKind() == NodeAttrs::Stmt) { in linkBlockRefs()
1666 if (IA.Addr->getKind() == NodeAttrs::Stmt) in linkBlockRefs()
1673 MachineDomTreeNode *N = MDT.getNode(BA.Addr->getCode()); in linkBlockRefs()
1682 if (NA.Addr->getKind() != NodeAttrs::Use) in linkBlockRefs()
1684 assert(NA.Addr->getFlags() & NodeAttrs::PhiRef); in linkBlockRefs()
1686 return PUA.Addr->getPredecessor() == BA.Id; in linkBlockRefs()
1690 MachineBasicBlock *MBB = BA.Addr->getCode(); in linkBlockRefs()
1695 for (NodeAddr<InstrNode*> IA : SBA.Addr->members_if(IsPhi, *this)) { in linkBlockRefs()
1699 NodeAddr<RefNode*> RA = IA.Addr->getFirstMember(*this); in linkBlockRefs()
1701 if (EHLiveIns.count(RA.Addr->getRegRef(*this))) in linkBlockRefs()
1705 for (auto U : IA.Addr->members_if(IsUseForBA, *this)) { in linkBlockRefs()
1707 RegisterRef RR = PUA.Addr->getRegRef(*this); in linkBlockRefs()
1719 NodeId RD = UA.Addr->getReachingDef(); in unlinkUseDF()
1720 NodeId Sib = UA.Addr->getSibling(); in unlinkUseDF()
1728 auto TA = addr<UseNode*>(RDA.Addr->getReachedUse()); in unlinkUseDF()
1730 RDA.Addr->setReachedUse(Sib); in unlinkUseDF()
1735 NodeId S = TA.Addr->getSibling(); in unlinkUseDF()
1737 TA.Addr->setSibling(UA.Addr->getSibling()); in unlinkUseDF()
1764 NodeId RD = DA.Addr->getReachingDef(); in unlinkDefDF()
1776 N = RA.Addr->getSibling(); in unlinkDefDF()
1780 NodeList ReachedDefs = getAllNodes(DA.Addr->getReachedDef()); in unlinkDefDF()
1781 NodeList ReachedUses = getAllNodes(DA.Addr->getReachedUse()); in unlinkDefDF()
1785 I.Addr->setSibling(0); in unlinkDefDF()
1787 I.Addr->setSibling(0); in unlinkDefDF()
1790 I.Addr->setReachingDef(RD); in unlinkDefDF()
1792 I.Addr->setReachingDef(RD); in unlinkDefDF()
1794 NodeId Sib = DA.Addr->getSibling(); in unlinkDefDF()
1802 auto TA = addr<DefNode*>(RDA.Addr->getReachedDef()); in unlinkDefDF()
1806 RDA.Addr->setReachedDef(Sib); in unlinkDefDF()
1811 NodeId S = TA.Addr->getSibling(); in unlinkDefDF()
1813 TA.Addr->setSibling(Sib); in unlinkDefDF()
1823 Last.Addr->setSibling(RDA.Addr->getReachedDef()); in unlinkDefDF()
1824 RDA.Addr->setReachedDef(ReachedDefs.front().Id); in unlinkDefDF()
1829 Last.Addr->setSibling(RDA.Addr->getReachedUse()); in unlinkDefDF()
1830 RDA.Addr->setReachedUse(ReachedUses.front().Id); in unlinkDefDF()