Fix suspected implicit casting problem in LinalgTileAndDistributePass.
* This was failing on gcc 9.3.1 and working on everything else (clang, msvc, gcc 9.3.0 (!)).
* As near as I can tell, it was an incomplete refactor that happens to be allowed via some implicit conversion path that I can't spot on other compilers.
* Fixes #4543.
diff --git a/iree/compiler/Conversion/LinalgToLLVM/LinalgTileAndDistributePass.cpp b/iree/compiler/Conversion/LinalgToLLVM/LinalgTileAndDistributePass.cpp
index 758569c..caab412 100644
--- a/iree/compiler/Conversion/LinalgToLLVM/LinalgTileAndDistributePass.cpp
+++ b/iree/compiler/Conversion/LinalgToLLVM/LinalgTileAndDistributePass.cpp
@@ -63,10 +63,10 @@
// Find the parent FuncOp before tiling. If tiling succeeds, the op will be
// erased.
FuncOp funcOp = op->getParentOfType<FuncOp>();
- SmallVector<Value, 4> tensorResults;
+ linalg::TiledLinalgOp tiledLinalgOp;
if (!funcOp ||
- failed(Base::matchAndRewriteBase(op, rewriter, tensorResults)) ||
- !tensorResults.empty() ||
+ failed(Base::matchAndRewriteBase(op, rewriter, tiledLinalgOp)) ||
+ !tiledLinalgOp.tensorResults.empty() ||
(funcOp->getAttr(getNumWorkgroupsFnAttrName()) &&
failed(createNumWorkgroupsFromResultShape(
rewriter, cast<linalg::LinalgOp>(op), funcOp,