Lines Matching refs:MMI

283                                         MatMulInfoTy &MMI) {  in isMatMulNonScalarReadAccess()  argument
288 if (isMatMulOperandAcc(StmtDomain, AccMap, MMI.i, MMI.j) && !MMI.ReadFromC) { in isMatMulNonScalarReadAccess()
289 MMI.ReadFromC = MemAccess; in isMatMulNonScalarReadAccess()
292 if (isMatMulOperandAcc(StmtDomain, AccMap, MMI.i, MMI.k) && !MMI.A) { in isMatMulNonScalarReadAccess()
293 MMI.A = MemAccess; in isMatMulNonScalarReadAccess()
296 if (isMatMulOperandAcc(StmtDomain, AccMap, MMI.k, MMI.j) && !MMI.B) { in isMatMulNonScalarReadAccess()
297 MMI.B = MemAccess; in isMatMulNonScalarReadAccess()
317 MatMulInfoTy &MMI) { in containsOnlyMatrMultAcc() argument
325 permuteDimensions(PartialSchedule, isl::dim::out, MMI.i, OutDimNum - 1); in containsOnlyMatrMultAcc()
327 permuteDimensions(PartialSchedule, isl::dim::out, MMI.j, OutDimNum - 1); in containsOnlyMatrMultAcc()
329 permuteDimensions(PartialSchedule, isl::dim::out, MMI.k, OutDimNum - 1); in containsOnlyMatrMultAcc()
334 if (MemAccessPtr->isLatestArrayKind() && MemAccessPtr != MMI.WriteToC && in containsOnlyMatrMultAcc()
335 !isMatMulNonScalarReadAccess(MemAccessPtr, MMI) && in containsOnlyMatrMultAcc()
402 MatMulInfoTy &MMI) { in containsMatrMult() argument
416 if (!isMatMulOperandAcc(Stmt->getDomain(), AccMap, MMI.i, MMI.j)) in containsMatrMult()
418 MMI.WriteToC = MemAccessPtr; in containsMatrMult()
422 if (!containsOnlyMatMulDep(PartialSchedule, D, MMI.k)) in containsMatrMult()
425 if (!MMI.WriteToC || !containsOnlyMatrMultAcc(PartialSchedule, MMI)) in containsMatrMult()
428 if (!MMI.A || !MMI.B || !MMI.ReadFromC) in containsMatrMult()
503 static uint64_t getMatMulAlignTypeSize(MatMulInfoTy MMI) { in getMatMulAlignTypeSize() argument
504 auto *S = MMI.A->getStatement()->getParent(); in getMatMulAlignTypeSize()
506 auto ElementSizeA = DL.getTypeAllocSize(MMI.A->getElementType()); in getMatMulAlignTypeSize()
507 auto ElementSizeB = DL.getTypeAllocSize(MMI.B->getElementType()); in getMatMulAlignTypeSize()
508 auto ElementSizeC = DL.getTypeAllocSize(MMI.WriteToC->getElementType()); in getMatMulAlignTypeSize()
518 static uint64_t getMatMulTypeSize(MatMulInfoTy MMI) { in getMatMulTypeSize() argument
519 auto *S = MMI.A->getStatement()->getParent(); in getMatMulTypeSize()
521 auto ElementSizeA = DL.getTypeSizeInBits(MMI.A->getElementType()); in getMatMulTypeSize()
522 auto ElementSizeB = DL.getTypeSizeInBits(MMI.B->getElementType()); in getMatMulTypeSize()
523 auto ElementSizeC = DL.getTypeSizeInBits(MMI.WriteToC->getElementType()); in getMatMulTypeSize()
540 MatMulInfoTy MMI) { in getMicroKernelParams() argument
550 auto ElementSize = getMatMulTypeSize(MMI); in getMicroKernelParams()
617 MatMulInfoTy MMI) { in getMacroKernelParams() argument
642 auto ElementSize = getMatMulAlignTypeSize(MMI); in getMacroKernelParams()
705 MatMulInfoTy &MMI) { in optimizePackedB() argument
714 S->createScopArrayInfo(MMI.B->getElementType(), "Packed_B", in optimizePackedB()
718 isl::map AccRelB = MMI.B->getLatestAccessRelation(); in optimizePackedB()
725 MMI.B->setNewAccessRelation(AccRelPackedB); in optimizePackedB()
732 ExtMap = ExtMap.fix_si(isl::dim::out, MMI.i, 0); in optimizePackedB()
742 MatMulInfoTy &MMI) { in optimizePackedA() argument
753 MMI.A->getElementType(), "Packed_A", in optimizePackedA()
757 isl::map AccRelA = MMI.A->getLatestAccessRelation(); in optimizePackedA()
789 MMI.A->setNewAccessRelation(AccRelPackedA); in optimizePackedA()
834 MatMulInfoTy &MMI) { in optimizeDataLayoutMatrMulPattern() argument
843 optimizePackedB(Node, Stmt, MapOldIndVar, MicroParams, MacroParams, MMI); in optimizeDataLayoutMatrMulPattern()
847 optimizePackedA(Node, Stmt, MapOldIndVar, MicroParams, MacroParams, MMI); in optimizeDataLayoutMatrMulPattern()
956 MatMulInfoTy &MMI) { in optimizeMatMulPattern() argument
963 Node = permuteBandNodeDimensions(Node, MMI.i, DimOutNum - 3); in optimizeMatMulPattern()
964 int NewJ = MMI.j == DimOutNum - 3 ? MMI.i : MMI.j; in optimizeMatMulPattern()
965 int NewK = MMI.k == DimOutNum - 3 ? MMI.i : MMI.k; in optimizeMatMulPattern()
969 auto MicroKernelParams = getMicroKernelParams(TTI, MMI); in optimizeMatMulPattern()
970 auto MacroKernelParams = getMacroKernelParams(TTI, MicroKernelParams, MMI); in optimizeMatMulPattern()
983 MacroKernelParams, MMI); in optimizeMatMulPattern()
1007 MatMulInfoTy &MMI) { in isMatrMultPattern() argument
1019 if (containsMatrMult(NewPartialSchedule, D, MMI)) in isMatrMultPattern()
1030 MatMulInfoTy MMI; in tryOptimizeMatMulPattern() local
1031 if (isMatrMultPattern(Node, D, MMI)) { in tryOptimizeMatMulPattern()
1033 return optimizeMatMulPattern(Node, TTI, MMI); in tryOptimizeMatMulPattern()