[mlir][linalg][transform] Add some debug output to vectorization. (NFC) (#66520)

This helps to understand what the problem is when vectorization of
structured ops failes due to mismatching vector sizes.
This commit is contained in:
Ingo Müller 2023-09-19 10:34:24 +02:00 committed by GitHub
parent 956860168b
commit 159e94a0c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -924,7 +924,6 @@ getTensorExtractMemoryAccessPattern(tensor::ExtractOp extractOp,
targetShape.back() == 1)
return VectorMemoryAccessKind::Gather;
// 2. Assume that it's a gather load when reading _from_ a tensor for which
// the trailing dimension is 1, e.g. `tensor<1x4x1xi32>`.
// TODO: Relax this condition.
@ -1484,6 +1483,10 @@ static LogicalResult vectorizeDynamicLinalgOpPrecondition(linalg::LinalgOp op) {
static LogicalResult
isValidMaskedInputVector(ArrayRef<int64_t> shape,
ArrayRef<int64_t> inputVectorSizes) {
LDBG("Iteration space static sizes:");
LLVM_DEBUG(llvm::interleaveComma(shape, llvm::dbgs()));
LLVM_DEBUG(llvm::dbgs() << "\n");
if (inputVectorSizes.size() != shape.size()) {
LDBG("Input vector sizes don't match the number of loops");
return failure();