This diff fixes fusion craching for ops with rank-0 tensors
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| mlir/lib/IR/AffineMap.cpp | ||
|---|---|---|
| 260–261 | There are going to be so many of such cases. The get method that gets context from the result expression should just be removed IMO | |
| mlir/lib/IR/AffineMap.cpp | ||
|---|---|---|
| 260–261 | IMO we should have a single ::get method that handle any results exprs including empty e.g AffineMap AffineMap::get(unsigned dimCount, unsigned symbolCount,
                         ArrayRef<AffineExpr> results) {
  
  if (!results.empty()) {
  getImpl(dimCount, symbolCount, results, results[0].getContext());
 } else {
   assert(symbolCount == 0);
   return get(numResultDims, 0, this->getContext());
 }
}Not sure if Nicolas prefer to have an explicit get method for rank-0 tensors for a specific reason. | |
| mlir/lib/IR/AffineMap.cpp | ||
|---|---|---|
| 260–261 | There is no this->getContext() . This is a static class method. So this would not compile. I think the reason for the separate method is because of the current assert(!result.empty()). Should just have a single method AffineMap AffineMap::get(unsigned dimCount, unsigned symbolCount, ArrayRef<AffineExpr> results, MLIRContext *context) {
  return getImpl(dimCount, symbolCount, results, context);
} | |
| mlir/lib/IR/AffineMap.cpp | ||
|---|---|---|
| 260–261 | ah Didn't notice its static method. having both results & context and a single get SGTM. We can do it in a follow up diff it will touch many places | |
| mlir/lib/IR/AffineMap.cpp | ||
|---|---|---|
| 260–261 | nit: Drop the this-> | |
There are going to be so many of such cases. The get method that gets context from the result expression should just be removed IMO