Lines Matching defs:MemRefDependenceGraph

103 struct MemRefDependenceGraph {  struct
108 struct Node {
173 struct Edge {
191 DenseMap<unsigned, Node> nodes;
193 DenseMap<unsigned, SmallVector<Edge, 2>> inEdges;
195 DenseMap<unsigned, SmallVector<Edge, 2>> outEdges;
198 DenseMap<Value, unsigned> memrefEdgeCount;
200 unsigned nextNodeId = 0;
209 Node *getNode(unsigned id) { in getNode()
216 Node *getForOpNode(AffineForOp forOp) { in getForOpNode()
224 unsigned addNode(Operation *op) { in addNode()
231 void removeNode(unsigned id) { in removeNode()
254 bool writesToLiveInOrEscapingMemrefs(unsigned id) { in writesToLiveInOrEscapingMemrefs()
273 bool hasEdge(unsigned srcId, unsigned dstId, Value value = nullptr) { in hasEdge()
287 void addEdge(unsigned srcId, unsigned dstId, Value value) { in addEdge()
297 void removeEdge(unsigned srcId, unsigned dstId, Value value) { in removeEdge()
323 bool hasDependencePath(unsigned srcId, unsigned dstId) { in hasDependencePath()
352 unsigned getIncomingMemRefAccesses(unsigned id, Value memref) { in getIncomingMemRefAccesses()
367 unsigned getOutEdgeCount(unsigned id, Value memref = nullptr) { in getOutEdgeCount()
377 void gatherDefiningNodes(unsigned id, DenseSet<unsigned> &definingNodes) { in gatherDefiningNodes()
389 Operation *getFusedLoopNestInsertionPoint(unsigned srcId, unsigned dstId) { in getFusedLoopNestInsertionPoint()
465 void updateEdges(unsigned srcId, unsigned dstId, in updateEdges()
503 void updateEdges(unsigned sibId, unsigned dstId) { in updateEdges()
528 void addToNode(unsigned id, const SmallVectorImpl<Operation *> &loads, in addToNode()
535 void clearNodeLoadAndStores(unsigned id) { in clearNodeLoadAndStores()
543 void forEachMemRefInputEdge(unsigned id, in forEachMemRefInputEdge()
551 void forEachMemRefOutputEdge(unsigned id, in forEachMemRefOutputEdge()
559 void forEachMemRefEdge(ArrayRef<Edge> edges, in forEachMemRefEdge()
574 void print(raw_ostream &os) const { in print()
591 void dump() const { print(llvm::errs()); } in dump()