This change cleans up the conversion pass re the "dim"-vs-"lvl" and "sizes"-vs-"shape" distinctions of the runtime. A quick synopsis includes:
- Adds new SparseTensorStorageBase::getDimSize method, with sparseDimSize wrapper in SparseTensorRuntime.h, and genDimSizeCall generator in SparseTensorConversion.cpp
- Changes genLvlSizeCall to perform no logic, just generate the function call.
- Adds createOrFold{Dim,Lvl}Call functions to handle the logic of replacing gen{Dim,Lvl}SizeCall with constants whenever possible. The createOrFoldDimCall function replaces the old sizeFromPtrAtDim.
- Adds {get,fill}DimSizes functions for iterating createOrFoldDimCall across the whole type. These functions replace the old sizesFromPtr.
- Adds {get,fill}DimShape functions for lowering a ShapedType into constants. These functions replace the old sizesFromType.
- Changes the DimOp rewrite to do the right thing.
- Changes the ExpandOp rewrite to compute the proper expansion size.
Depends On D138365
any reason for dropping the signature?
(and good catch on the brittle match using c1 ;-)