Lines Matching defs:TCI
1284 /// @param TCI The information about the tensor contraction.
1289 TCInfoTy &TCI,
1291 TCI.WriteToC = nullptr;
1302 if (!isTCOperandAcc(Domain, AccMap, IandJIndexSet, TCI.DimensionSizes,
1303 TCI.CDimensions))
1318 /// @param TCI The information about the tensor contraction.
1324 ArrayRef<int> Dimensions, TCInfoTy &TCI) {
1325 if (!TCI.A) {
1327 if (!isSuperset(IndexSet, TCI.P))
1331 TCI.I = set_difference(IndexSet, TCI.P);
1332 if (!isSuperset(IandJIndexSet, TCI.I))
1336 TCI.J = set_difference(IandJIndexSet, TCI.I);
1339 TCI.A = MemAccessPtr;
1340 llvm::replace(TCI.ADimensions, TCI.ADimensions.begin(),
1341 TCI.ADimensions.end(), Dimensions.begin(), Dimensions.end());
1345 if (!TCI.B) {
1347 if (unite(TCI.P, TCI.J) != IndexSet)
1351 TCI.B = MemAccessPtr;
1352 llvm::replace(TCI.BDimensions, TCI.BDimensions.begin(),
1353 TCI.BDimensions.end(), Dimensions.begin(), Dimensions.end());
1366 /// @param TCI The information about the tensor contraction.
1370 static bool setReadAccesses(isl::set Domain, ScopStmt *Stmt, TCInfoTy &TCI,
1372 TCI.A = nullptr;
1373 TCI.B = nullptr;
1374 TCI.ReadFromC = nullptr;
1376 for (auto *MemA = Accesses.begin(); *MemA != TCI.WriteToC; MemA++) {
1396 if (AccMap.is_equal(TCI.WriteToC->getLatestAccessRelation())) {
1397 if (TCI.ReadFromC)
1399 TCI.ReadFromC = MemAccessPtr;
1405 if (!isTCOperandAcc(Domain, AccMap, IndexSet, TCI.DimensionSizes,
1409 if (!setReadAccess(MemAccessPtr, IndexSet, IandJIndexSet, Dimensions, TCI))
1415 return TCI.ReadFromC && TCI.A && TCI.B;
1426 /// @param TCI Parameters of the tensor contraction operands.
1431 TCInfoTy &TCI) {
1441 TCI.DimensionSizes.resize(DimNum);
1444 TCI.WriteToC = getWriteAccess(Domain, Stmt, TCI, IandJIndexSet);
1445 if (!TCI.WriteToC)
1448 if (intersect(IandJIndexSet, TCI.P).size() != 0)
1451 if (!setReadAccesses(Domain, Stmt, TCI, IandJIndexSet))
1663 /// @param TCI Parameters of the tensor contraction operands.
1668 TCInfoTy &TCI, isl::set Domain) {
1669 if (!containsOnlyTcDeps(PartialSchedule, D, TCI.P, Domain))
1673 if (TCI.P.size() == 0)
1676 if (!containsOnlyTCAcc(Domain, PartialSchedule, TCI))
1680 if ((TCI.I.size() == 0) || (TCI.J.size() == 0))
1740 /// @param TCI Parameters of the tensor contraction operands.
1742 TCInfoTy &TCI) {
1815 if (containsTCInfoTy(PartialScheduleMap, D, TCI, isl::set(Domain)))
1827 TCInfoTy TCI;
1828 if (PMBasedTCOpts && isTCPattern(Node, D, TCI))