Lines Matching refs:Node

224     bool isHeader(const BlockNode &Node) const {
227 Node);
228 return Node == Nodes[0];
252 BlockNode Node; ///< This node.
256 WorkingData(const BlockNode &Node) : Node(Node), Loop(nullptr) {}
258 bool isLoopHeader() const { return Loop && Loop->isHeader(Node); }
261 Loop->Parent->isHeader(Node);
274 /// Get the node currently representing Node, which could be a containing
278 /// there are no irreducible edges to Node, then it will have complexity
282 /// headers Node has been packaged into. Since this method is called in
287 return L ? L->getHeader() : Node;
300 /// Get appropriate mass for Node. If Node is a loop-header (whose loop
312 bool isPackaged() const { return getResolvedNode() != Node; }
359 void addLocal(const BlockNode &Node, uint64_t Amount) {
360 add(Node, Amount, Weight::Local);
362 void addExit(const BlockNode &Node, uint64_t Amount) {
363 add(Node, Amount, Weight::Exit);
365 void addBackedge(const BlockNode &Node, uint64_t Amount) {
366 add(Node, Amount, Weight::Backedge);
381 void add(const BlockNode &Node, uint64_t Amount, Weight::DistType Type);
474 virtual std::string getBlockName(const BlockNode &Node) const;
480 Scaled64 getFloatingBlockFreq(const BlockNode &Node) const;
482 BlockFrequency getBlockFreq(const BlockNode &Node) const;
484 const BlockNode &Node) const;
486 void setBlockFreq(const BlockNode &Node, uint64_t Freq);
488 raw_ostream &printBlockFreq(raw_ostream &OS, const BlockNode &Node) const;
561 BlockNode Node;
564 IrrNode(const BlockNode &Node) : Node(Node), NumIn(0) {}
598 void addNode(const BlockNode &Node) {
599 Nodes.emplace_back(Node);
600 BFI.Working[Node.Index].getMass() = BlockMass::getEmpty();
604 void addEdges(const BlockNode &Node, const BFIBase::LoopData *OuterLoop,
624 void IrreducibleGraph::addEdges(const BlockNode &Node,
627 auto L = Lookup.find(Node.Index);
631 const auto &Working = BFI.Working[Node.Index];
828 const BlockT *getBlock(const BlockNode &Node) const {
829 assert(Node.Index < RPOT.size());
830 return RPOT[Node.Index];
850 /// currently assigned to \c Node between its successors.
853 bool propagateMassToSuccessors(LoopData *OuterLoop, const BlockNode &Node);
909 std::string getBlockName(const BlockNode &Node) const override {
910 return bfi_detail::getBlockName(getBlock(Node));
1009 BlockNode Node = getNode(I);
1010 DEBUG(dbgs() << " - " << getIndex(I) << ": " << getBlockName(Node) << "\n");
1011 Nodes[*I] = Node;
1129 BlockNode Node = getNode(I);
1130 if (Working[Node.Index].isPackaged())
1133 if (!propagateMassToSuccessors(nullptr, Node))
1160 const BlockT *BB = BFI.RPOT[Irr.Node.Index];
1196 const BlockNode &Node) {
1197 DEBUG(dbgs() << " - node: " << getBlockName(Node) << "\n");
1200 if (auto *Loop = Working[Node.Index].getPackagedLoop()) {
1206 const BlockT *BB = getBlock(Node);
1209 if (!addToDist(Dist, OuterLoop, Node, getNode(*SI),
1217 distributeMass(Node, OuterLoop, Dist);
1257 std::string getNodeAttributes(const NodeType *Node,
1274 BlockFrequency Freq = Graph->getBlockFreq(Node);
1288 std::string getNodeLabel(const NodeType *Node,
1293 OS << Node->getName().str() << " : ";
1296 Graph->printBlockFreq(OS, Node);
1299 OS << Graph->getBlockFreq(Node).getFrequency();
1302 auto Count = Graph->getBlockProfileCount(Node);
1316 std::string getEdgeAttributes(const NodeType *Node, EdgeIter EI,
1324 BranchProbability BP = BPI->getEdgeProbability(Node, EI);
1332 BlockFrequency EFreq = BFI->getBlockFreq(Node) * BP;