Lines Matching +full:- +full:- +full:user
1 //===- LoopRangeFolding.cpp - Code to perform loop range folding-----------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
37 getOperation()->walk([&](ForOp op) {
52 Operation *user = *indVar.getUsers().begin();
53 if (!isa<arith::AddIOp, arith::MulIOp>(user))
56 if (!llvm::all_of(user->getOperands(), canBeFolded))
67 if (isa<arith::AddIOp>(user)) {
68 Operation *lbFold = b.clone(*user, lbMap);
69 Operation *ubFold = b.clone(*user, ubMap);
71 op.setLowerBound(lbFold->getResult(0));
72 op.setUpperBound(ubFold->getResult(0));
74 } else if (isa<arith::MulIOp>(user)) {
75 Operation *lbFold = b.clone(*user, lbMap);
76 Operation *ubFold = b.clone(*user, ubMap);
77 Operation *stepFold = b.clone(*user, stepMap);
79 op.setLowerBound(lbFold->getResult(0));
80 op.setUpperBound(ubFold->getResult(0));
81 op.setStep(stepFold->getResult(0));
85 user->replaceAllUsesWith(wrapIndvar);
86 user->erase();