Lines Matching defs:srcNode
152 auto *srcNode = mdg->getNode(srcEdge.id);
153 // Skip if 'srcNode' is not a loop nest.
154 if (!isa<AffineForOp>(srcNode->op))
157 if (any_of(srcNode->stores, [&](Operation *op) {
161 srcIdCandidates.push_back(srcNode->id);
175 auto *srcNode = mdg->getNode(srcId);
176 gatherProducerConsumerMemrefs(srcNode->stores, dstNode->loads,
779 // Don't create a private memref if 'srcNode' has in edges on
785 // If 'srcNode' will be removed but it has out edges on 'memref' to
838 // Get 'srcNode' from which to attempt fusion into 'dstNode'.
839 auto *srcNode = mdg->getNode(srcId);
840 auto srcAffineForOp = cast<AffineForOp>(srcNode->op);
844 // Skip if 'srcNode' is a loop nest returning values.
846 if (isa<AffineForOp>(srcNode->op) && srcNode->op->getNumResults() > 0)
853 // Skip if 'srcNode' out edge count on any memref is greater than
856 return mdg->getOutEdgeCount(srcNode->id, memref) >
861 // Gather memrefs in 'srcNode' that are written and escape out of the
865 gatherEscapingMemrefs(srcNode->id, mdg, srcEscapingMemRefs);
867 // Skip if there are non-affine operations in between the 'srcNode'
869 // compute a legal insertion point for now. 'srcNode' and 'dstNode'
874 hasNonAffineUsersOnPath(srcNode->op, dstNode->op)) {
883 mdg->getFusedLoopNestInsertionPoint(srcNode->id, dstNode->id);
940 for (Operation *op : srcNode->stores)
999 // Update edges between 'srcNode' and 'dstNode'.
1000 mdg->updateEdges(srcNode->id, dstNode->id, privateMemrefs,
1048 // srcNode is no longer valid after it is removed from mdg.
1051 srcNode = nullptr;