Lines Matching defs:reduc
473 MutableArrayRef<Value> reduc, bool isParallel) {
485 builder.create<scf::ParallelOp>(loc, lo, hi, step, reduc);
487 assert(parOp.getNumReductions() == reduc.size());
497 for (int i = 0, e = reduc.size(); i < e; i++)
498 reduc[i] = parOp.getInitVals()[i];
501 scf::ForOp forOp = builder.create<scf::ForOp>(loc, lo, hi, step, reduc);
506 assert(forOp.getNumRegionIterArgs() == reduc.size());
507 for (int i = 0, e = reduc.size(); i < e; i++)
508 reduc[i] = forOp.getRegionIterArg(i);
526 MutableArrayRef<Value> reduc, bool needsUniv) {
527 return genCoIteration(builder, loc, spIters, reduc,
546 MutableArrayRef<Value> reduc) {
578 llvm::copy(iterArgs, reduc.begin());
597 unsigned numCases, MutableArrayRef<Value> reduc, bool tryParallel,
614 loc, extractSpaceOp.getExtractedSpace(), reduc);
618 llvm::copy(iterOp.getRegionIterArgs(), reduc.begin());
636 auto coIterOp = builder.create<CoIterateOp>(loc, spaces, reduc, numCases);
645 tryParallel = tryParallel && reduc.size() <= 1;
670 emitForLoopOverTensorAtLvl(builder, loc, it, reduc, tryParallel);
682 emitWhileLoopOverTensorsAtLvls(builder, loc, spIters, reduc, needsUniv);
729 MutableArrayRef<Value> reduc) {
733 assert(reduc.size() == iterateOp.getNumResults());
734 rewriter.create<sparse_tensor::YieldOp>(loc, reduc);
738 llvm::copy(iterateOp.getResults(), reduc.begin());
742 if (!reduc.empty()) {
743 assert(reduc.size() == forOp.getNumResults());
744 rewriter.create<scf::YieldOp>(loc, reduc);
749 llvm::copy(forOp.getResults(), reduc.begin());
752 if (!reduc.empty()) {
753 assert(reduc.size() == parOp.getInitVals().size() && reduc.size() == 1);
754 Operation *redExp = reduc.front().getDefiningOp();
800 reduc[i] = parOp.getResult(i);
805 MutableArrayRef<Value> reduc) {
839 for (auto &i : reduc) {
862 MutableArrayRef<Value> reduc) {
869 rewriter.create<sparse_tensor::YieldOp>(loc, reduc);
874 llvm::copy(p->getResults(), reduc.begin());
890 exitWhileLoop(rewriter, loc, reduc);
892 exitForLoop(rewriter, loc, reduc);
905 MutableArrayRef<Value> reduc, Value uniIdx, bool userReducFirst) {
917 ivs.append(reduc.begin(), reduc.end());
926 ivs.append(reduc.begin(), reduc.end());
953 assert(bArgs.size() == reduc.size() + (uniIdx ? 1 : 0));
971 for (unsigned i = 0, e = reduc.size(); i < e; i++)
972 reduc[i] = aArgs[i];