Lines Matching refs:NodeAddr

335   template <typename T> struct NodeAddr {  struct
336 NodeAddr() = default;
337 NodeAddr(T A, NodeId I) : Addr(A), Id(I) {} in NodeAddr() argument
341 template <typename S> NodeAddr(const NodeAddr<S> &NA) in NodeAddr() argument
344 bool operator== (const NodeAddr<T> &NA) const {
348 bool operator!= (const NodeAddr<T> &NA) const {
392 NodeAddr<NodeBase*> New();
465 void append(NodeAddr<NodeBase*> NA);
513 using NodeList = SmallVector<NodeAddr<NodeBase *>, 4>;
554 NodeAddr<RefNode*> getNextRef(RegisterRef RR, Predicate P, bool NextOnly,
556 NodeAddr<NodeBase*> getOwner(const DataFlowGraph &G);
573 void linkToDef(NodeId Self, NodeAddr<DefNode*> DA);
577 void linkToDef(NodeId Self, NodeAddr<DefNode*> DA);
599 NodeAddr<NodeBase*> getFirstMember(const DataFlowGraph &G) const;
600 NodeAddr<NodeBase*> getLastMember(const DataFlowGraph &G) const;
601 void addMember(NodeAddr<NodeBase*> NA, const DataFlowGraph &G);
602 void addMemberAfter(NodeAddr<NodeBase*> MA, NodeAddr<NodeBase*> NA,
604 void removeMember(NodeAddr<NodeBase*> NA, const DataFlowGraph &G);
612 NodeAddr<NodeBase*> getOwner(const DataFlowGraph &G);
632 void addPhi(NodeAddr<PhiNode*> PA, const DataFlowGraph &G);
640 NodeAddr<BlockNode*> findBlock(const MachineBasicBlock *BB,
642 NodeAddr<BlockNode*> getEntryBlock(const DataFlowGraph &G);
657 template <typename T> NodeAddr<T> addr(NodeId N) const { in addr()
661 NodeAddr<FuncNode*> getFunc() const { return Func; } in getFunc()
676 using value_type = NodeAddr<DefNode *>;
712 void push(NodeAddr<DefNode*> DA) { Stack.push_back(DA); } in push()
737 void pushAllDefs(NodeAddr<InstrNode*> IA, DefStackMap &DM);
755 NodeAddr<RefNode*> getNextRelated(NodeAddr<InstrNode*> IA,
756 NodeAddr<RefNode*> RA) const;
757 NodeAddr<RefNode*> getNextImp(NodeAddr<InstrNode*> IA,
758 NodeAddr<RefNode*> RA, bool Create);
759 NodeAddr<RefNode*> getNextImp(NodeAddr<InstrNode*> IA,
760 NodeAddr<RefNode*> RA) const;
761 NodeAddr<RefNode*> getNextShadow(NodeAddr<InstrNode*> IA,
762 NodeAddr<RefNode*> RA, bool Create);
763 NodeAddr<RefNode*> getNextShadow(NodeAddr<InstrNode*> IA,
764 NodeAddr<RefNode*> RA) const;
766 NodeList getRelatedRefs(NodeAddr<InstrNode*> IA,
767 NodeAddr<RefNode*> RA) const;
769 NodeAddr<BlockNode*> findBlock(MachineBasicBlock *BB) const { in findBlock()
773 void unlinkUse(NodeAddr<UseNode*> UA, bool RemoveFromOwner) { in unlinkUse()
779 void unlinkDef(NodeAddr<DefNode*> DA, bool RemoveFromOwner) { in unlinkDef()
787 static bool IsRef(const NodeAddr<NodeBase*> BA) { in IsRef()
793 static bool IsCode(const NodeAddr<NodeBase*> BA) { in IsCode()
798 static bool IsDef(const NodeAddr<NodeBase*> BA) { in IsDef()
803 static bool IsUse(const NodeAddr<NodeBase*> BA) { in IsUse()
808 static bool IsPhi(const NodeAddr<NodeBase*> BA) { in IsPhi()
813 static bool IsPreservingDef(const NodeAddr<DefNode*> DA) { in IsPreservingDef()
823 NodeAddr<NodeBase*> newNode(uint16_t Attrs);
824 NodeAddr<NodeBase*> cloneNode(const NodeAddr<NodeBase*> B);
825 NodeAddr<UseNode*> newUse(NodeAddr<InstrNode*> Owner,
827 NodeAddr<PhiUseNode*> newPhiUse(NodeAddr<PhiNode*> Owner,
828 RegisterRef RR, NodeAddr<BlockNode*> PredB,
830 NodeAddr<DefNode*> newDef(NodeAddr<InstrNode*> Owner,
832 NodeAddr<DefNode*> newDef(NodeAddr<InstrNode*> Owner,
834 NodeAddr<PhiNode*> newPhi(NodeAddr<BlockNode*> Owner);
835 NodeAddr<StmtNode*> newStmt(NodeAddr<BlockNode*> Owner,
837 NodeAddr<BlockNode*> newBlock(NodeAddr<FuncNode*> Owner,
839 NodeAddr<FuncNode*> newFunc(MachineFunction *MF);
842 std::pair<NodeAddr<RefNode*>,NodeAddr<RefNode*>>
843 locateNextRef(NodeAddr<InstrNode*> IA, NodeAddr<RefNode*> RA,
848 void buildStmt(NodeAddr<BlockNode*> BA, MachineInstr &In);
849 void recordDefsForDF(BlockRefsMap &PhiM, NodeAddr<BlockNode*> BA);
851 NodeAddr<BlockNode*> BA);
854 void pushClobbers(NodeAddr<InstrNode*> IA, DefStackMap &DM);
855 void pushDefs(NodeAddr<InstrNode*> IA, DefStackMap &DM);
856 template <typename T> void linkRefUp(NodeAddr<InstrNode*> IA,
857 NodeAddr<T> TA, DefStack &DS);
859 NodeAddr<StmtNode*> SA, Predicate P);
860 void linkBlockRefs(DefStackMap &DefM, NodeAddr<BlockNode*> BA);
862 void unlinkUseDF(NodeAddr<UseNode*> UA);
863 void unlinkDefDF(NodeAddr<DefNode*> DA);
865 void removeFromOwner(NodeAddr<RefNode*> RA) { in removeFromOwner()
866 NodeAddr<InstrNode*> IA = RA.Addr->getOwner(*this); in removeFromOwner()
879 NodeAddr<FuncNode*> Func;
882 std::map<MachineBasicBlock*,NodeAddr<BlockNode*>> BlockNodes;
888 NodeAddr<RefNode*> RefNode::getNextRef(RegisterRef RR, Predicate P, in getNextRef()
896 NodeAddr<RefNode*> RA = NA; in getNextRef()
905 NodeAddr<CodeNode*> CA = NA; in getNextRef()
910 return NodeAddr<RefNode*>(); in getNextRef()
941 struct PrintNode : Print<NodeAddr<T>> {
942 PrintNode(const NodeAddr<T> &x, const DataFlowGraph &g) in PrintNode()
943 : Print<NodeAddr<T>>(x, g) {} in PrintNode()