Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir | ||
---|---|---|
173 | Should probably be %{{.*}}, %{{.*}}? |
Couldnt get to this before it landed. Leaving my comments here anyway.
mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp | ||
---|---|---|
179 | Does this really need to be added as a dependence? init_tensor is mostly shape so there should not be any dependence between them.... | |
183 | Also interesting that this is added as a WAW dependence. In tensor world this is not a WAW dependence really. it is actually a RAW dependence. Take this example, %1 = linalg.fill(%0, %cst) %2 = linalg.matmul ins(%lhs1, %rhs1) outs(%1) %3 = linalg.matmul ins(%lhs2, %rhs2) outs(%1) In both these examples the %1 value is "read" by the two matmul operations. It is not written. So it is strange to see this as a WAW dependence. It might just be a matter of terminology clash between tensor world and buffer world, cause a WAW dependence in the traditional sense does not have a place in tensor world (you can write to a tensor twice). Its really a RAW dependence, but with the additional information that when bufferized it becomes a WAW dependence? So concern is that in might be conflating issues, and in general hard to follow. Do we even need to make this a WAW dependence. Its just a dependence. Why not just say RAW dependence? |
mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp | ||
---|---|---|
179 | isInitTensor means the value is actually used, so yes. | |
183 | This is a good point, I'll mull it over the week-end. |
Does this really need to be added as a dependence? init_tensor is mostly shape so there should not be any dependence between them....