• Home
  • Raw
  • Download

Lines Matching refs:dstId

334   bool hasEdge(unsigned srcId, unsigned dstId, Value value = nullptr) {  in hasEdge()
335 if (outEdges.count(srcId) == 0 || inEdges.count(dstId) == 0) { in hasEdge()
339 return edge.id == dstId && (!value || edge.value == value); in hasEdge()
341 bool hasInEdge = llvm::any_of(inEdges[dstId], [=](Edge &edge) { in hasEdge()
348 void addEdge(unsigned srcId, unsigned dstId, Value value) { in addEdge()
349 if (!hasEdge(srcId, dstId, value)) { in addEdge()
350 outEdges[srcId].push_back({dstId, value}); in addEdge()
351 inEdges[dstId].push_back({srcId, value}); in addEdge()
358 void removeEdge(unsigned srcId, unsigned dstId, Value value) { in removeEdge()
359 assert(inEdges.count(dstId) > 0); in removeEdge()
366 for (auto it = inEdges[dstId].begin(); it != inEdges[dstId].end(); ++it) { in removeEdge()
368 inEdges[dstId].erase(it); in removeEdge()
374 if ((*it).id == dstId && (*it).value == value) { in removeEdge()
383 bool hasDependencePath(unsigned srcId, unsigned dstId) { in hasDependencePath()
391 if (idAndIndex.first == dstId) in hasDependencePath()
439 Operation *getFusedLoopNestInsertionPoint(unsigned srcId, unsigned dstId) { in getFusedLoopNestInsertionPoint()
441 return getNode(dstId)->op; in getFusedLoopNestInsertionPoint()
446 if (outEdge.id != dstId) in getFusedLoopNestInsertionPoint()
451 for (auto &inEdge : inEdges[dstId]) in getFusedLoopNestInsertionPoint()
456 Operation *dstNodeInst = getNode(dstId)->op; in getFusedLoopNestInsertionPoint()
501 void updateEdges(unsigned srcId, unsigned dstId, Value oldMemRef, in updateEdges()
509 addEdge(inEdge.id, dstId, inEdge.value); in updateEdges()
517 if (outEdge.id == dstId) in updateEdges()
524 if (inEdges.count(dstId) > 0 && createPrivateMemRef) { in updateEdges()
525 SmallVector<Edge, 2> oldInEdges = inEdges[dstId]; in updateEdges()
528 removeEdge(inEdge.id, dstId, inEdge.value); in updateEdges()
534 void updateEdges(unsigned sibId, unsigned dstId) { in updateEdges()
541 addEdge(inEdge.id, dstId, inEdge.value); in updateEdges()
552 addEdge(dstId, outEdge.id, outEdge.value); in updateEdges()
717 unsigned dstId = memrefAndList.second[j]; in init() local
719 getNode(dstId)->getStoreOpCount(memrefAndList.first) > 0; in init()
721 addEdge(srcId, dstId, memrefAndList.first); in init()
879 static bool hasNonAffineUsersOnThePath(unsigned srcId, unsigned dstId, in hasNonAffineUsersOnThePath() argument
883 auto *dstNode = mdg->getNode(dstId); in hasNonAffineUsersOnThePath()
913 static bool hasNonAffineUsersOnThePath(unsigned srcId, unsigned dstId, in hasNonAffineUsersOnThePath() argument
930 if (hasNonAffineUsersOnThePath(srcId, dstId, memref, mdg)) in hasNonAffineUsersOnThePath()
942 canFuseSrcWhichWritesToLiveOut(unsigned srcId, unsigned dstId, in canFuseSrcWhichWritesToLiveOut() argument
946 auto *dstNode = mdg->getNode(dstId); in canFuseSrcWhichWritesToLiveOut()
998 if (hasNonAffineUsersOnThePath(srcId, dstId, mdg)) in canFuseSrcWhichWritesToLiveOut()
1377 unsigned dstId = worklist.back(); in fuseProducerConsumerNodes() local
1379 worklistSet.erase(dstId); in fuseProducerConsumerNodes()
1382 if (mdg->nodes.count(dstId) == 0) in fuseProducerConsumerNodes()
1385 auto *dstNode = mdg->getNode(dstId); in fuseProducerConsumerNodes()
1407 if (mdg->inEdges.count(dstId) == 0) in fuseProducerConsumerNodes()
1412 for (auto &srcEdge : mdg->inEdges[dstId]) { in fuseProducerConsumerNodes()
1464 !canFuseSrcWhichWritesToLiveOut(srcId, dstId, srcStoreOp, mdg)) in fuseProducerConsumerNodes()
1538 << "Fused src loop " << srcId << " into dst loop " << dstId in fuseProducerConsumerNodes()
1570 mdg->addEdge(newMemRefNodeId, dstId, newMemRef); in fuseProducerConsumerNodes()
1599 mdg->addToNode(dstId, dstLoopCollector.loadOpInsts, in fuseProducerConsumerNodes()
1637 unsigned dstId = worklist.back(); in fuseSiblingNodes() local
1639 worklistSet.erase(dstId); in fuseSiblingNodes()
1642 if (mdg->nodes.count(dstId) == 0) in fuseSiblingNodes()
1645 auto *dstNode = mdg->getNode(dstId); in fuseSiblingNodes()