Lines Matching defs:NodeT

217 struct NodeT {
218 NodeT(const NodeT &) = delete;
219 NodeT(NodeT &&) = default;
220 NodeT &operator=(const NodeT &) = delete;
221 NodeT &operator=(NodeT &&) = default;
223 explicit NodeT(size_t Index, uint64_t Size, uint64_t Count)
229 bool isSuccessor(const NodeT *Other) const;
250 NodeT *ForcedSucc{nullptr};
252 NodeT *ForcedPred{nullptr};
266 explicit JumpT(NodeT *Source, NodeT *Target, uint64_t ExecutionCount)
270 NodeT *Source;
272 NodeT *Target;
288 explicit ChainT(uint64_t Id, NodeT *Node)
299 for (NodeT *Node : Nodes) {
329 void merge(ChainT *Other, std::vector<NodeT *> MergedBlocks) {
361 std::vector<NodeT *> Nodes;
452 bool NodeT::isSuccessor(const NodeT *Other) const {
459 uint64_t NodeT::outCount() const {
466 uint64_t NodeT::inCount() const {
492 using NodeIter = std::vector<NodeT *>::const_iterator;
493 static std::vector<NodeT *> EmptyList;
515 std::vector<NodeT *> getNodes() const {
516 std::vector<NodeT *> Result;
525 const NodeT *getFirstNode() const { return *Begin1; }
561 MergedNodesT mergeNodes(const std::vector<NodeT *> &X,
562 const std::vector<NodeT *> &Y, size_t MergeOffset,
642 NodeT &PredNode = AllNodes[Edge.src];
643 NodeT &SuccNode = AllNodes[Edge.dst];
661 for (NodeT &Node : AllNodes) {
671 for (NodeT &PredNode : AllNodes) {
674 NodeT *SuccNode = Jump->Target;
696 for (NodeT &Node : AllNodes) {
712 for (NodeT &Node : AllNodes) {
716 NodeT *SuccNode = Node.ForcedSucc;
728 for (NodeT &Node : AllNodes) {
730 const NodeT *CurBlock = &Node;
732 const NodeT *NextBlock = CurBlock->ForcedSucc;
829 Nodes.forEach([&](const NodeT *Node) {
836 const NodeT *SrcBlock = Jump->Source;
837 const NodeT *DstBlock = Jump->Target;
872 NodeT *Node = ChainPred->Nodes[Offset - 1];
889 const NodeT *SrcBlock = Jump->Source;
898 const NodeT *DstBlock = Jump->Target;
911 const NodeT *BB = ChainPred->Nodes[Offset - 1];
912 const NodeT *BB2 = ChainPred->Nodes[Offset];
1004 for (NodeT *Node : Chain->Nodes)
1020 std::vector<NodeT> AllNodes;
1085 NodeT &PredNode = AllNodes[Pred];
1086 NodeT &SuccNode = AllNodes[Succ];
1099 for (NodeT &Node : AllNodes) {
1110 for (NodeT &PredNode : AllNodes) {
1112 NodeT *SuccNode = Jump->Target;
1139 for (NodeT &Node : AllNodes) {
1305 Nodes.forEach([&](const NodeT *Node) {
1348 for (NodeT *Node : Chain.Nodes) {
1371 for (NodeT *Node : Chain->Nodes)
1390 std::vector<NodeT> AllNodes;