Lines Matching refs:AffineMap
95 AffineMap AffineMap::getConstantMap(int64_t val, MLIRContext *context) { in getConstantMap()
102 AffineMap AffineMap::getMinorIdentityMap(unsigned dims, unsigned results, in getMinorIdentityMap()
105 auto id = AffineMap::getMultiDimIdentityMap(dims, context); in getMinorIdentityMap()
106 return AffineMap::get(dims, 0, id.getResults().take_back(results), context); in getMinorIdentityMap()
109 bool AffineMap::isMinorIdentity() const { in isMinorIdentity()
117 bool AffineMap::isMinorIdentityWithBroadcasting( in isMinorIdentityWithBroadcasting()
157 bool AffineMap::isPermutationOfMinorIdentityWithBroadcasting( in isPermutationOfMinorIdentityWithBroadcasting()
205 AffineMap AffineMap::getPermutationMap(ArrayRef<unsigned> permutation, in getPermutationMap()
213 auto permutationMap = AffineMap::get(*m + 1, 0, affExprs, context); in getPermutationMap()
219 static SmallVector<AffineMap, 4>
226 SmallVector<AffineMap, 4> maps; in inferFromExprList()
229 maps.push_back(AffineMap::get(/*dimCount=*/maxDim + 1, in inferFromExprList()
234 SmallVector<AffineMap, 4>
235 AffineMap::inferFromExprList(ArrayRef<ArrayRef<AffineExpr>> exprsList) { in inferFromExprList()
239 SmallVector<AffineMap, 4>
240 AffineMap::inferFromExprList(ArrayRef<SmallVector<AffineExpr, 4>> exprsList) { in inferFromExprList()
244 AffineMap AffineMap::getMultiDimIdentityMap(unsigned numDims, in getMultiDimIdentityMap()
253 MLIRContext *AffineMap::getContext() const { return map->context; } in getContext()
255 bool AffineMap::isIdentity() const { in isIdentity()
267 bool AffineMap::isEmpty() const { in isEmpty()
271 bool AffineMap::isSingleConstant() const { in isSingleConstant()
275 bool AffineMap::isConstant() const { in isConstant()
281 int64_t AffineMap::getSingleConstantResult() const { in getSingleConstantResult()
286 SmallVector<int64_t> AffineMap::getConstantResults() const { in getConstantResults()
294 unsigned AffineMap::getNumDims() const { in getNumDims()
298 unsigned AffineMap::getNumSymbols() const { in getNumSymbols()
302 unsigned AffineMap::getNumResults() const { return getResults().size(); } in getNumResults()
303 unsigned AffineMap::getNumInputs() const { in getNumInputs()
307 ArrayRef<AffineExpr> AffineMap::getResults() const { in getResults()
311 AffineExpr AffineMap::getResult(unsigned idx) const { in getResult()
315 unsigned AffineMap::getDimPosition(unsigned idx) const { in getDimPosition()
319 unsigned AffineMap::getPermutedPosition(unsigned input) const { in getPermutedPosition()
331 AffineMap::constantFold(ArrayRef<Attribute> operandConstants, in constantFold()
349 AffineMap
350 AffineMap::partialConstantFold(ArrayRef<Attribute> operandConstants, in partialConstantFold()
382 void AffineMap::walkExprs(llvm::function_ref<void(AffineExpr)> callback) const { in walkExprs()
392 AffineMap AffineMap::replaceDimsAndSymbols(ArrayRef<AffineExpr> dimReplacements, in replaceDimsAndSymbols()
407 AffineMap AffineMap::replace(AffineExpr expr, AffineExpr replacement, in replace()
414 return AffineMap::get(numResultDims, numResultSyms, newResults, getContext()); in replace()
420 AffineMap AffineMap::replace(const DenseMap<AffineExpr, AffineExpr> &map, in replace()
427 return AffineMap::get(numResultDims, numResultSyms, newResults, getContext()); in replace()
430 AffineMap
431 AffineMap::replace(const DenseMap<AffineExpr, AffineExpr> &map) const { in replace()
436 return AffineMap::inferFromExprList(newResults).front(); in replace()
439 AffineMap AffineMap::compose(AffineMap map) const { in compose()
460 return AffineMap::get(numDims, numSymbols, exprs, map.getContext()); in compose()
463 SmallVector<int64_t, 4> AffineMap::compose(ArrayRef<int64_t> values) const { in compose()
470 auto resMap = compose(AffineMap::get(0, 0, exprs, ctx)); in compose()
478 bool AffineMap::isProjectedPermutation(bool allowZeroInResults) const { in isProjectedPermutation()
508 bool AffineMap::isPermutation() const { in isPermutation()
514 AffineMap AffineMap::getSubMap(ArrayRef<unsigned> resultPos) const { in getSubMap()
519 return AffineMap::get(getNumDims(), getNumSymbols(), exprs, getContext()); in getSubMap()
522 AffineMap AffineMap::getSliceMap(unsigned start, unsigned length) const { in getSliceMap()
523 return AffineMap::get(getNumDims(), getNumSymbols(), in getSliceMap()
527 AffineMap AffineMap::getMajorSubMap(unsigned numResults) const { in getMajorSubMap()
529 return AffineMap(); in getMajorSubMap()
535 AffineMap AffineMap::getMinorSubMap(unsigned numResults) const { in getMinorSubMap()
537 return AffineMap(); in getMinorSubMap()
543 AffineMap mlir::compressDims(AffineMap map, in compressDims()
559 return AffineMap::get(numDims, map.getNumSymbols(), resultExprs, context); in compressDims()
562 AffineMap mlir::compressUnusedDims(AffineMap map) { in compressUnusedDims()
566 static SmallVector<AffineMap>
567 compressUnusedImpl(ArrayRef<AffineMap> maps, in compressUnusedImpl()
568 llvm::function_ref<AffineMap(AffineMap)> compressionFun) { in compressUnusedImpl()
570 return SmallVector<AffineMap>(); in compressUnusedImpl()
580 AffineMap unifiedMap = compressionFun( in compressUnusedImpl()
581 AffineMap::get(numDims, numSymbols, allExprs, maps.front().getContext())); in compressUnusedImpl()
585 SmallVector<AffineMap> res; in compressUnusedImpl()
588 res.push_back(AffineMap::get(unifiedNumDims, unifiedNumSymbols, in compressUnusedImpl()
596 SmallVector<AffineMap> mlir::compressUnusedDims(ArrayRef<AffineMap> maps) { in compressUnusedDims()
598 [](AffineMap m) { return compressUnusedDims(m); }); in compressUnusedDims()
601 AffineMap mlir::compressSymbols(AffineMap map, in compressSymbols()
617 return AffineMap::get(map.getNumDims(), numSymbols, resultExprs, context); in compressSymbols()
620 AffineMap mlir::compressUnusedSymbols(AffineMap map) { in compressUnusedSymbols()
629 SmallVector<AffineMap> mlir::compressUnusedSymbols(ArrayRef<AffineMap> maps) { in compressUnusedSymbols()
631 maps, [](AffineMap m) { return compressUnusedSymbols(m); }); in compressUnusedSymbols()
634 AffineMap mlir::simplifyAffineMap(AffineMap map) { in simplifyAffineMap()
640 return AffineMap::get(map.getNumDims(), map.getNumSymbols(), exprs, in simplifyAffineMap()
644 AffineMap mlir::removeDuplicateExprs(AffineMap map) { in removeDuplicateExprs()
649 return AffineMap::get(map.getNumDims(), map.getNumSymbols(), uniqueExprs, in removeDuplicateExprs()
653 AffineMap mlir::inversePermutation(AffineMap map) { in inversePermutation()
673 return AffineMap(); in inversePermutation()
674 return AffineMap::get(map.getNumResults(), 0, seenExprs, map.getContext()); in inversePermutation()
677 AffineMap mlir::inverseAndBroadcastProjectedPermutation(AffineMap map) { in inverseAndBroadcastProjectedPermutation()
695 return AffineMap::get(map.getNumResults(), /*symbolCount=*/0, exprs, context); in inverseAndBroadcastProjectedPermutation()
698 AffineMap mlir::concatAffineMaps(ArrayRef<AffineMap> maps) { in concatAffineMaps()
711 return AffineMap::get(numDims, numSymbols, results, in concatAffineMaps()
715 AffineMap mlir::getProjectedMap(AffineMap map, in getProjectedMap()
720 llvm::SmallBitVector mlir::getUnusedDimsBitVector(ArrayRef<AffineMap> maps) { in getUnusedDimsBitVector()
736 MutableAffineMap::MutableAffineMap(AffineMap map) in MutableAffineMap()
741 void MutableAffineMap::reset(AffineMap map) { in reset()
768 AffineMap MutableAffineMap::getAffineMap() const { in getAffineMap()
769 return AffineMap::get(numDims, numSymbols, results, context); in getAffineMap()