• Home
  • Raw
  • Download

Lines Matching refs:NodeAddr

294   template <typename T> struct NodeAddr {  struct
295 NodeAddr() : Addr(nullptr), Id(0) {} in NodeAddr() function
296 NodeAddr(T A, NodeId I) : Addr(A), Id(I) {} in NodeAddr() function
297 NodeAddr(const NodeAddr&) = default;
298 NodeAddr &operator= (const NodeAddr&) = default; argument
300 bool operator== (const NodeAddr<T> &NA) const {
304 bool operator!= (const NodeAddr<T> &NA) const {
309 template <typename S> NodeAddr(const NodeAddr<S> &NA) in NodeAddr() function
349 NodeAddr<NodeBase*> New();
427 void append(NodeAddr<NodeBase*> NA);
473 typedef std::vector<NodeAddr<NodeBase*>> NodeList;
507 NodeAddr<RefNode*> getNextRef(RegisterRef RR, Predicate P, bool NextOnly,
509 NodeAddr<NodeBase*> getOwner(const DataFlowGraph &G);
526 void linkToDef(NodeId Self, NodeAddr<DefNode*> DA);
530 void linkToDef(NodeId Self, NodeAddr<DefNode*> DA);
552 NodeAddr<NodeBase*> getFirstMember(const DataFlowGraph &G) const;
553 NodeAddr<NodeBase*> getLastMember(const DataFlowGraph &G) const;
554 void addMember(NodeAddr<NodeBase*> NA, const DataFlowGraph &G);
555 void addMemberAfter(NodeAddr<NodeBase*> MA, NodeAddr<NodeBase*> NA,
557 void removeMember(NodeAddr<NodeBase*> NA, const DataFlowGraph &G);
565 NodeAddr<NodeBase*> getOwner(const DataFlowGraph &G);
584 void addPhi(NodeAddr<PhiNode*> PA, const DataFlowGraph &G);
591 NodeAddr<BlockNode*> findBlock(const MachineBasicBlock *BB,
593 NodeAddr<BlockNode*> getEntryBlock(const DataFlowGraph &G);
608 template <typename T> NodeAddr<T> addr(NodeId N) const { in addr()
612 NodeAddr<FuncNode*> getFunc() const { in getFunc()
638 typedef NodeAddr<DefNode*> value_type;
667 void push(NodeAddr<DefNode*> DA) { Stack.push_back(DA); } in push()
685 void pushDefs(NodeAddr<InstrNode*> IA, DefStackMap &DM);
689 NodeAddr<RefNode*> getNextRelated(NodeAddr<InstrNode*> IA,
690 NodeAddr<RefNode*> RA) const;
691 NodeAddr<RefNode*> getNextImp(NodeAddr<InstrNode*> IA,
692 NodeAddr<RefNode*> RA, bool Create);
693 NodeAddr<RefNode*> getNextImp(NodeAddr<InstrNode*> IA,
694 NodeAddr<RefNode*> RA) const;
695 NodeAddr<RefNode*> getNextShadow(NodeAddr<InstrNode*> IA,
696 NodeAddr<RefNode*> RA, bool Create);
697 NodeAddr<RefNode*> getNextShadow(NodeAddr<InstrNode*> IA,
698 NodeAddr<RefNode*> RA) const;
700 NodeList getRelatedRefs(NodeAddr<InstrNode*> IA,
701 NodeAddr<RefNode*> RA) const;
703 void unlinkUse(NodeAddr<UseNode*> UA, bool RemoveFromOwner) { in unlinkUse()
708 void unlinkDef(NodeAddr<DefNode*> DA, bool RemoveFromOwner) { in unlinkDef()
716 static bool IsRef(const NodeAddr<NodeBase*> BA) { in IsRef()
721 static bool IsCode(const NodeAddr<NodeBase*> BA) { in IsCode()
725 static bool IsDef(const NodeAddr<NodeBase*> BA) { in IsDef()
729 static bool IsUse(const NodeAddr<NodeBase*> BA) { in IsUse()
733 static bool IsPhi(const NodeAddr<NodeBase*> BA) { in IsPhi()
741 NodeAddr<NodeBase*> newNode(uint16_t Attrs);
742 NodeAddr<NodeBase*> cloneNode(const NodeAddr<NodeBase*> B);
743 NodeAddr<UseNode*> newUse(NodeAddr<InstrNode*> Owner,
745 NodeAddr<PhiUseNode*> newPhiUse(NodeAddr<PhiNode*> Owner,
746 RegisterRef RR, NodeAddr<BlockNode*> PredB,
748 NodeAddr<DefNode*> newDef(NodeAddr<InstrNode*> Owner,
750 NodeAddr<DefNode*> newDef(NodeAddr<InstrNode*> Owner,
752 NodeAddr<PhiNode*> newPhi(NodeAddr<BlockNode*> Owner);
753 NodeAddr<StmtNode*> newStmt(NodeAddr<BlockNode*> Owner,
755 NodeAddr<BlockNode*> newBlock(NodeAddr<FuncNode*> Owner,
757 NodeAddr<FuncNode*> newFunc(MachineFunction *MF);
760 std::pair<NodeAddr<RefNode*>,NodeAddr<RefNode*>>
761 locateNextRef(NodeAddr<InstrNode*> IA, NodeAddr<RefNode*> RA,
766 void buildStmt(NodeAddr<BlockNode*> BA, MachineInstr &In);
767 void buildBlockRefs(NodeAddr<BlockNode*> BA, BlockRefsMap &RefM);
769 NodeAddr<BlockNode*> BA);
771 NodeAddr<BlockNode*> BA);
774 template <typename T> void linkRefUp(NodeAddr<InstrNode*> IA,
775 NodeAddr<T> TA, DefStack &DS);
776 void linkStmtRefs(DefStackMap &DefM, NodeAddr<StmtNode*> SA);
777 void linkBlockRefs(DefStackMap &DefM, NodeAddr<BlockNode*> BA);
779 void unlinkUseDF(NodeAddr<UseNode*> UA);
780 void unlinkDefDF(NodeAddr<DefNode*> DA);
781 void removeFromOwner(NodeAddr<RefNode*> RA) { in removeFromOwner()
782 NodeAddr<InstrNode*> IA = RA.Addr->getOwner(*this); in removeFromOwner()
787 NodeAddr<FuncNode*> Func;
800 NodeAddr<RefNode*> RefNode::getNextRef(RegisterRef RR, Predicate P, in getNextRef()
808 NodeAddr<RefNode*> RA = NA; in getNextRef()
817 NodeAddr<CodeNode*> CA = NA; in getNextRef()
822 return NodeAddr<RefNode*>(); in getNextRef()
853 struct PrintNode : Print<NodeAddr<T>> {
854 PrintNode(const NodeAddr<T> &x, const DataFlowGraph &g) in PrintNode()
855 : Print<NodeAddr<T>>(x, g) {} in PrintNode()