Lines Matching refs:Addr

72   uint16_t Attrs = NA.Addr->getAttrs();  in operator <<()
114 << Print<RegisterRef>(RA.Addr->getRegRef(G), G) << '>'; in printRefHeader()
115 if (RA.Addr->getFlags() & NodeAttrs::Fixed) in printRefHeader()
123 if (NodeId N = P.Obj.Addr->getReachingDef()) in operator <<()
126 if (NodeId N = P.Obj.Addr->getReachedDef()) in operator <<()
129 if (NodeId N = P.Obj.Addr->getReachedUse()) in operator <<()
132 if (NodeId N = P.Obj.Addr->getSibling()) in operator <<()
141 if (NodeId N = P.Obj.Addr->getReachingDef()) in operator <<()
144 if (NodeId N = P.Obj.Addr->getSibling()) in operator <<()
154 if (NodeId N = P.Obj.Addr->getReachingDef()) in operator <<()
157 if (NodeId N = P.Obj.Addr->getPredecessor()) in operator <<()
160 if (NodeId N = P.Obj.Addr->getSibling()) in operator <<()
167 switch (P.Obj.Addr->getKind()) { in operator <<()
172 if (P.Obj.Addr->getFlags() & NodeAttrs::PhiRef) in operator <<()
230 << PrintListV<RefNode*>(P.Obj.Addr->members(P.G), P.G) << ']'; in operator <<()
237 const MachineInstr &MI = *P.Obj.Addr->getCode(); in operator <<()
257 OS << " [" << PrintListV<RefNode*>(P.Obj.Addr->members(P.G), P.G) << ']'; in operator <<()
264 switch (P.Obj.Addr->getKind()) { in operator <<()
281 MachineBasicBlock *BB = P.Obj.Addr->getCode(); in operator <<()
307 for (auto I : P.Obj.Addr->members(P.G)) in operator <<()
316 << P.Obj.Addr->getCode()->getName() << '\n'; in operator <<()
317 for (auto I : P.Obj.Addr->members(P.G)) in operator <<()
343 << '<' << Print<RegisterRef>(I->Addr->getRegRef(P.G), P.G) << '>'; in operator <<()
420 NA.Addr->Next = Nx; in append()
456 while (NA.Addr != this) { in getOwner()
457 if (NA.Addr->getType() == NodeAttrs::Code) in getOwner()
459 NA = G.addr<NodeBase*>(NA.Addr->getNext()); in getOwner()
467 Ref.Sib = DA.Addr->getReachedDef(); in linkToDef()
468 DA.Addr->setReachedDef(Self); in linkToDef()
474 Ref.Sib = DA.Addr->getReachedUse(); in linkToDef()
475 DA.Addr->setReachedUse(Self); in linkToDef()
496 ML.Addr->append(NA); in addMember()
500 NA.Addr->setNext(Self); in addMember()
508 MA.Addr->append(NA); in addMemberAfter()
525 Code.FirstM = MA.Addr->getNext(); in removeMember()
530 while (MA.Addr != this) { in removeMember()
531 NodeId MX = MA.Addr->getNext(); in removeMember()
533 MA.Addr->setNext(NA.Addr->getNext()); in removeMember()
555 while (NA.Addr != this) { in getOwner()
556 assert(NA.Addr->getType() == NodeAttrs::Code); in getOwner()
557 if (NA.Addr->getKind() == NodeAttrs::Block) in getOwner()
559 NA = G.addr<NodeBase*>(NA.Addr->getNext()); in getOwner()
572 assert(M.Addr->getType() == NodeAttrs::Code); in addPhi()
573 if (M.Addr->getKind() == NodeAttrs::Stmt) { in addPhi()
577 PA.Addr->setNext(M.Id); in addPhi()
580 assert(M.Addr->getKind() == NodeAttrs::Phi); in addPhi()
584 MN = G.addr<NodeBase*>(M.Addr->getNext()); in addPhi()
585 assert(MN.Addr->getType() == NodeAttrs::Code); in addPhi()
586 } while (MN.Addr->getKind() == NodeAttrs::Phi); in addPhi()
598 return NodeAddr<BlockNode*>(NA).Addr->getCode() == BB; in findBlock()
799 P.Addr->init(); in newNode()
800 P.Addr->setAttrs(Attrs); in newNode()
808 memcpy(NA.Addr, B.Addr, sizeof(NodeBase)); in cloneNode()
810 if (NA.Addr->getType() == NodeAttrs::Ref) { in cloneNode()
812 RA.Addr->setReachingDef(0); in cloneNode()
813 RA.Addr->setSibling(0); in cloneNode()
814 if (NA.Addr->getKind() == NodeAttrs::Def) { in cloneNode()
816 DA.Addr->setReachedDef(0); in cloneNode()
817 DA.Addr->setReachedUse(0); in cloneNode()
828 UA.Addr->setRegRef(&Op, *this); in newUse()
836 PUA.Addr->setRegRef(RR, *this); in newPhiUse()
837 PUA.Addr->setPredecessor(PredB.Id); in newPhiUse()
844 DA.Addr->setRegRef(&Op, *this); in newDef()
852 DA.Addr->setRegRef(RR, *this); in newDef()
858 Owner.Addr->addPhi(PA, *this); in newPhi()
865 SA.Addr->setCode(MI); in newStmt()
866 Owner.Addr->addMember(SA, *this); in newStmt()
873 BA.Addr->setCode(BB); in newBlock()
874 Owner.Addr->addMember(BA, *this); in newBlock()
880 FA.Addr->setCode(MF); in newFunc()
902 NodeAddr<BlockNode*> EA = Func.Addr->getEntryBlock(*this); in build()
903 NodeList Blocks = Func.Addr->members(*this); in build()
908 for (NodeAddr<InstrNode*> IA : BA.Addr->members(*this)) in build()
909 for (NodeAddr<RefNode*> RA : IA.Addr->members(*this)) in build()
910 AllRefs.insert(RA.Addr->getRegRef(*this)); in build()
914 MachineBasicBlock &EntryB = *EA.Addr->getCode(); in build()
930 PA.Addr->addMember(DA, *this); in build()
941 const MachineBasicBlock &B = *BA.Addr->getCode(); in build()
956 PA.Addr->addMember(DA, *this); in build()
960 PA.Addr->addMember(PUA, *this); in build()
1065 for (NodeAddr<DefNode*> DA : IA.Addr->members_if(IsDef, *this)) { in pushClobbers()
1068 if (!(DA.Addr->getFlags() & NodeAttrs::Clobbering)) in pushClobbers()
1073 RegisterRef RR = PDA.Addr->getRegRef(*this); in pushClobbers()
1111 for (NodeAddr<DefNode*> DA : IA.Addr->members_if(IsDef, *this)) { in pushDefs()
1114 if (DA.Addr->getFlags() & NodeAttrs::Clobbering) in pushDefs()
1119 RegisterRef RR = PDA.Addr->getRegRef(*this); in pushDefs()
1124 MachineInstr *MI = NodeAddr<StmtNode*>(IA).Addr->getCode(); in pushDefs()
1178 if (TA.Addr->getKind() != RA.Addr->getKind()) in getNextRelated()
1180 if (TA.Addr->getRegRef(*this) != RA.Addr->getRegRef(*this)) in getNextRelated()
1186 &RA.Addr->getOp() == &TA.Addr->getOp(); in getNextRelated()
1191 if (TA.Addr->getKind() != NodeAttrs::Use) in getNextRelated()
1196 return TUA.Addr->getPredecessor() == RUA.Addr->getPredecessor(); in getNextRelated()
1199 RegisterRef RR = RA.Addr->getRegRef(*this); in getNextRelated()
1200 if (IA.Addr->getKind() == NodeAttrs::Stmt) in getNextRelated()
1201 return RA.Addr->getNextRef(RR, RelatedStmt, true, *this); in getNextRelated()
1202 return RA.Addr->getNextRef(RR, RelatedPhi, true, *this); in getNextRelated()
1238 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1240 return TA.Addr->getFlags() == Flags; in getNextShadow()
1248 NA.Addr->setFlags(Flags | NodeAttrs::Shadow); in getNextShadow()
1249 IA.Addr->addMemberAfter(Loc.first, NA, *this); in getNextShadow()
1258 uint16_t Flags = RA.Addr->getFlags() | NodeAttrs::Shadow; in getNextShadow()
1260 return TA.Addr->getFlags() == Flags; in getNextShadow()
1330 SA.Addr->addMember(DA, *this); in buildStmt()
1344 SA.Addr->addMember(DA, *this); in buildStmt()
1379 SA.Addr->addMember(DA, *this); in buildStmt()
1396 SA.Addr->addMember(UA, *this); in buildStmt()
1407 MachineBasicBlock *BB = BA.Addr->getCode(); in recordDefsForDF()
1419 for (NodeAddr<InstrNode*> IA : BA.Addr->members(*this)) in recordDefsForDF()
1420 for (NodeAddr<RefNode*> RA : IA.Addr->members_if(IsDef, *this)) in recordDefsForDF()
1421 Defs.insert(RA.Addr->getRegRef(*this)); in recordDefsForDF()
1489 const MachineBasicBlock *MBB = BA.Addr->getCode(); in buildPhis()
1512 PA.Addr->addMember(DA, *this); in buildPhis()
1519 PA.Addr->addMember(PUA, *this); in buildPhis()
1539 for (NodeAddr<BlockNode*> BA : Func.Addr->members(*this)) { in removeUnusedPhis()
1540 for (auto P : BA.Addr->members_if(IsPhi, *this)) in removeUnusedPhis()
1546 if (M.Addr->getKind() != NodeAttrs::Def) in removeUnusedPhis()
1549 if (DA.Addr->getReachedDef() != 0 || DA.Addr->getReachedUse() != 0) in removeUnusedPhis()
1561 NodeList Refs = PA.Addr->members(*this); in removeUnusedPhis()
1565 if (NodeId RD = RA.Addr->getReachingDef()) { in removeUnusedPhis()
1567 NodeAddr<InstrNode*> OA = RDA.Addr->getOwner(*this); in removeUnusedPhis()
1571 if (RA.Addr->isDef()) in removeUnusedPhis()
1576 NodeAddr<BlockNode*> BA = PA.Addr->getOwner(*this); in removeUnusedPhis()
1577 BA.Addr->removeMember(PA, *this); in removeUnusedPhis()
1589 RegisterRef RR = TA.Addr->getRegRef(*this); in linkRefUp()
1596 RegisterRef QR = I->Addr->getRegRef(*this); in linkRefUp()
1616 TAP.Addr->setFlags(TAP.Addr->getFlags() | NodeAttrs::Shadow); in linkRefUp()
1621 TAP.Addr->linkToDef(TAP.Id, RDA); in linkRefUp()
1637 for (NodeAddr<RefNode*> RA : SA.Addr->members_if(P, *this)) { in linkStmtRefs()
1638 uint16_t Kind = RA.Addr->getKind(); in linkStmtRefs()
1640 RegisterRef RR = RA.Addr->getRegRef(*this); in linkStmtRefs()
1667 return IsDef(RA) && (RA.Addr->getFlags() & NodeAttrs::Clobbering); in linkBlockRefs()
1670 return IsDef(RA) && !(RA.Addr->getFlags() & NodeAttrs::Clobbering); in linkBlockRefs()
1673 assert(BA.Addr && "block node address is needed to create a data-flow link"); in linkBlockRefs()
1677 for (NodeAddr<InstrNode*> IA : BA.Addr->members(*this)) { in linkBlockRefs()
1680 if (IA.Addr->getKind() == NodeAttrs::Stmt) { in linkBlockRefs()
1688 if (IA.Addr->getKind() == NodeAttrs::Stmt) in linkBlockRefs()
1695 MachineDomTreeNode *N = MDT.getNode(BA.Addr->getCode()); in linkBlockRefs()
1704 if (NA.Addr->getKind() != NodeAttrs::Use) in linkBlockRefs()
1706 assert(NA.Addr->getFlags() & NodeAttrs::PhiRef); in linkBlockRefs()
1708 return PUA.Addr->getPredecessor() == BA.Id; in linkBlockRefs()
1712 MachineBasicBlock *MBB = BA.Addr->getCode(); in linkBlockRefs()
1717 for (NodeAddr<InstrNode*> IA : SBA.Addr->members_if(IsPhi, *this)) { in linkBlockRefs()
1721 NodeAddr<RefNode*> RA = IA.Addr->getFirstMember(*this); in linkBlockRefs()
1723 if (EHLiveIns.count(RA.Addr->getRegRef(*this))) in linkBlockRefs()
1727 for (auto U : IA.Addr->members_if(IsUseForBA, *this)) { in linkBlockRefs()
1729 RegisterRef RR = PUA.Addr->getRegRef(*this); in linkBlockRefs()
1741 NodeId RD = UA.Addr->getReachingDef(); in unlinkUseDF()
1742 NodeId Sib = UA.Addr->getSibling(); in unlinkUseDF()
1750 auto TA = addr<UseNode*>(RDA.Addr->getReachedUse()); in unlinkUseDF()
1752 RDA.Addr->setReachedUse(Sib); in unlinkUseDF()
1757 NodeId S = TA.Addr->getSibling(); in unlinkUseDF()
1759 TA.Addr->setSibling(UA.Addr->getSibling()); in unlinkUseDF()
1786 NodeId RD = DA.Addr->getReachingDef(); in unlinkDefDF()
1798 N = RA.Addr->getSibling(); in unlinkDefDF()
1802 NodeList ReachedDefs = getAllNodes(DA.Addr->getReachedDef()); in unlinkDefDF()
1803 NodeList ReachedUses = getAllNodes(DA.Addr->getReachedUse()); in unlinkDefDF()
1807 I.Addr->setSibling(0); in unlinkDefDF()
1809 I.Addr->setSibling(0); in unlinkDefDF()
1812 I.Addr->setReachingDef(RD); in unlinkDefDF()
1814 I.Addr->setReachingDef(RD); in unlinkDefDF()
1816 NodeId Sib = DA.Addr->getSibling(); in unlinkDefDF()
1824 auto TA = addr<DefNode*>(RDA.Addr->getReachedDef()); in unlinkDefDF()
1828 RDA.Addr->setReachedDef(Sib); in unlinkDefDF()
1833 NodeId S = TA.Addr->getSibling(); in unlinkDefDF()
1835 TA.Addr->setSibling(Sib); in unlinkDefDF()
1845 Last.Addr->setSibling(RDA.Addr->getReachedDef()); in unlinkDefDF()
1846 RDA.Addr->setReachedDef(ReachedDefs.front().Id); in unlinkDefDF()
1851 Last.Addr->setSibling(RDA.Addr->getReachedUse()); in unlinkDefDF()
1852 RDA.Addr->setReachedUse(ReachedUses.front().Id); in unlinkDefDF()