Lines Matching refs:solver
25 static LogicalResult staticallyNonNegative(DataFlowSolver &solver, Value v) { in staticallyNonNegative() argument
26 auto *result = solver.lookupState<IntegerValueRangeLattice>(v); in staticallyNonNegative()
36 static LogicalResult staticallyNonNegative(DataFlowSolver &solver, in staticallyNonNegative() argument
38 auto nonNegativePred = [&solver](Value v) -> bool { in staticallyNonNegative()
39 return succeeded(staticallyNonNegative(solver, v)); in staticallyNonNegative()
48 static LogicalResult isCmpIConvertable(DataFlowSolver &solver, CmpIOp op) { in isCmpIConvertable() argument
55 return success(llvm::all_of(op.getOperands(), [&solver](Value v) -> bool { in isCmpIConvertable()
56 return succeeded(staticallyNonNegative(solver, v)); in isCmpIConvertable()
113 DataFlowSolver solver; in runOnOperation() local
114 solver.load<DeadCodeAnalysis>(); in runOnOperation()
115 solver.load<IntegerRangeAnalysis>(); in runOnOperation()
116 if (failed(solver.initializeAndRun(op))) in runOnOperation()
124 [&solver](Operation *op) -> Optional<bool> { in runOnOperation()
125 return failed(staticallyNonNegative(solver, op)); in runOnOperation()
128 [&solver](CmpIOp op) -> Optional<bool> { in runOnOperation()
129 return failed(isCmpIConvertable(solver, op)); in runOnOperation()