Lines Matching defs:solver
38 static std::optional<APInt> getMaybeConstantValue(DataFlowSolver &solver,
41 solver.lookupState<IntegerValueRangeLattice>(value);
49 static void copyIntegerRange(DataFlowSolver &solver, Value oldVal,
53 auto *oldState = solver.lookupState<IntegerValueRangeLattice>(oldVal);
56 (void)solver.getOrCreateState<IntegerValueRangeLattice>(newVal)->join(
61 static LogicalResult maybeReplaceWithConstant(DataFlowSolver &solver,
66 std::optional<APInt> maybeConstValue = getMaybeConstantValue(solver, value);
94 copyIntegerRange(solver, value, constOp->getResult(0));
121 solver(s) {}
128 return getMaybeConstantValue(solver, v).has_value() && !v.use_empty();
147 (succeeded(maybeReplaceWithConstant(solver, rewriter, v)) ||
159 (void)maybeReplaceWithConstant(solver, rewriter, arg);
166 DataFlowSolver &solver;
172 : OpRewritePattern<RemOp>(context), solver(s) {}
184 auto *maybeLhsRange = solver.lookupState<IntegerValueRangeLattice>(lhs);
207 DataFlowSolver &solver;
212 static LogicalResult collectRanges(DataFlowSolver &solver, ValueRange values,
216 solver.lookupState<IntegerValueRangeLattice>(val);
317 : OpTraitRewritePattern(context), solver(s), targetBitwidths(target) {}
326 if (failed(collectRanges(solver, op->getOperands(), ranges)))
328 if (failed(collectRanges(solver, op->getResults(), ranges)))
376 copyIntegerRange(solver, oldRes, castBack);
387 DataFlowSolver &solver;
393 : OpRewritePattern(context), solver(s), targetBitwidths(target) {}
401 if (failed(collectRanges(solver, op.getOperands(), ranges)))
427 copyIntegerRange(solver, op.getResult(), newOp->getResult(0));
435 DataFlowSolver &solver;
478 DataFlowSolver solver;
479 solver.load<DeadCodeAnalysis>();
480 solver.load<IntegerRangeAnalysis>();
481 if (failed(solver.initializeAndRun(op)))
484 DataFlowListener listener(solver);
487 populateIntRangeOptimizationsPatterns(patterns, solver);
504 DataFlowSolver solver;
505 solver.load<DeadCodeAnalysis>();
506 solver.load<IntegerRangeAnalysis>();
507 if (failed(solver.initializeAndRun(op)))
510 DataFlowListener listener(solver);
513 populateIntRangeNarrowingPatterns(patterns, solver, bitwidthsSupported);
528 RewritePatternSet &patterns, DataFlowSolver &solver) {
530 DeleteTrivialRem<RemUIOp>>(patterns.getContext(), solver);
534 RewritePatternSet &patterns, DataFlowSolver &solver,
536 patterns.add<NarrowElementwise, NarrowCmpI>(patterns.getContext(), solver,