Lines Matching defs:uRead
356 static bool canUseOpDominanceDueToRegions(OpOperand *uRead, OpOperand *uWrite,
362 state.getEnclosingRepetitiveRegion(uRead->getOwner(), options);
402 static bool canUseOpDominanceDueToBlocks(OpOperand *uRead, OpOperand *uWrite,
408 if (uRead->getOwner()->getParentRegion() !=
412 Block *readBlock = uRead->getOwner()->getBlock();
424 static bool canUseOpDominance(OpOperand *uRead, OpOperand *uWrite,
427 return canUseOpDominanceDueToRegions(uRead, uWrite, definitions, state) &&
428 canUseOpDominanceDueToBlocks(uRead, uWrite, definitions, state);
432 static void annotateConflict(OpOperand *uRead, OpOperand *uConflictingWrite,
435 Operation *readingOp = uRead->getOwner();
448 id + "[READ: " + std::to_string(uRead->getOperandNumber()) + "]";
509 static bool areNonConflictingSubsets(OpOperand *uRead,
512 Operation *readingOp = uRead->getOwner();
516 // uRead is an InsertSliceOp...
525 if (uRead == &subsetOp.getDestinationOperand() &&
530 // being read by uRead, this is not a conflict.
533 // uRead = OpOperand 1 (%t) of tensor.insert_slice
541 if (uRead == &subsetOp.getSourceOperand() &&
543 matchesInsertDestination(state, uRead, subsetOp))
550 // uRead = OpOperand 0 (%1) of tensor.insert_slice
567 // uRead = OpOperand 0 (%1) of vector.transfer_read
576 uRead->get(), subsetOp.getSourceOperand().get()) &&
634 for (OpOperand *uRead : usesRead) {
635 Operation *readingOp = uRead->getOwner();
637 LLVM_DEBUG(llvm::dbgs() << " uRead = operand " << uRead->getOperandNumber()
640 // Find the definition of uRead by following the SSA use-def chain.
647 // In the above example, if uRead is the OpOperand of reading_op, the
650 const SetVector<Value> &definitions = state.findDefinitionsCached(uRead);
668 canUseOpDominance(uRead, uConflictingWrite, definitions, state);
697 if (uConflictingWrite == uRead) {
720 state, {uRead, uConflictingWrite})) {
722 state, uRead, uConflictingWrite->get()) ||
724 state, uConflictingWrite, uRead->get())) {
736 if (areNonConflictingSubsets(uRead, uConflictingWrite, state)) {
743 if (bufferizableOp.isNotConflicting(uRead, uConflictingWrite, state)) {
753 if (bufferizableOp.isNotConflicting(uRead, uConflictingWrite,
807 annotateConflict(uRead, uConflictingWrite, definition);