[Mlir-commits] [mlir] [mlir][sparse] Update verifier for block sparsity and singleton (PR #69389)
Peiming Liu
llvmlistbot at llvm.org
Tue Oct 17 15:34:22 PDT 2023
================
@@ -678,19 +692,14 @@ SparseTensorEncodingAttr::verify(function_ref<InFlightDiagnostic()> emitError,
return emitError()
<< "level-rank mismatch between dimToLvl and lvlTypes: "
<< dimToLvl.getNumResults() << " != " << lvlRank;
- // TODO: The following is attempting to match the old error-conditions
- // from prior to merging dimOrdering and higherOrdering into dimToLvl.
- // That is, we currently require `dimToLvl` to be either a permutation
- // (as when higherOrdering is the identity) or expansive (as per the
- // constraints on higherOrdering). However, those constraints do
- // not match the intended semantics of `dimToLvl`. As we improve the
- // compiler to actually handle non-permutations, we need to update these
- // checks to match what is actually supported. In particular, this is
- // where we'll have to check that when `lvlToDim` is provided then it
- // is indeed an inverse of `dimToLvl`, and when it isn't provided then
- // it can be automatically inferred.
- if (dimRank == lvlRank && !dimToLvl.isPermutation())
- return emitError() << "expected a permutation affine map for dimToLvl";
+ auto inferRes = inferLvlToDim(dimToLvl, dimToLvl.getContext());
+ // Symbols can't be inferred but are acceptable.
+ if (!inferRes && dimToLvl.getNumSymbols() == 0) {
+ return emitError() << "failed to infer lvlToDim from dimToLvl";
+ }
----------------
PeimingLiu wrote:
nit: You can remove `{}` here, see https://llvm.org/docs/CodingStandards.html#don-t-use-braces-on-simple-single-statement-bodies-of-if-else-loop-statements
https://github.com/llvm/llvm-project/pull/69389
More information about the Mlir-commits
mailing list