Lines Matching refs:constraints

41 static LogicalResult alignAndAddBound(FlatAffineValueConstraints &constraints,  in alignAndAddBound()  argument
46 unpackOptionalValues(constraints.getMaybeValues(VarKind::SetDim), dims); in alignAndAddBound()
47 unpackOptionalValues(constraints.getMaybeValues(VarKind::Symbol), syms); in alignAndAddBound()
52 constraints.appendSymbolVar(newSyms[i]); in alignAndAddBound()
53 return constraints.addBound(type, pos, alignedMap); in alignAndAddBound()
106 FlatAffineValueConstraints constraints) { in canonicalizeMinMaxOp() argument
111 unsigned dimOp = constraints.appendDimVar(); // `op` in canonicalizeMinMaxOp()
112 unsigned dimOpBound = constraints.appendDimVar(); // `op` lower/upper bound in canonicalizeMinMaxOp()
113 unsigned resultDimStart = constraints.appendDimVar(/*num=*/numResults); in canonicalizeMinMaxOp()
121 alignAndAddBound(constraints, boundType, dimOp, mapLbUb, operands))) in canonicalizeMinMaxOp()
127 constraints.getSliceBounds(dimOp, 1, rewriter.getContext(), &opLb, &opUb); in canonicalizeMinMaxOp()
139 if (failed(constraints.addBound(IntegerPolyhedron::EQ, dimOpBound, in canonicalizeMinMaxOp()
145 if (constraints.isEmpty()) in canonicalizeMinMaxOp()
159 FlatAffineValueConstraints newConstr(constraints); in canonicalizeMinMaxOp()
185 unpackOptionalValues(constraints.getMaybeValues(), newOperands); in canonicalizeMinMaxOp()
188 for (int64_t i = 0, e = constraints.getNumVars(); i < e; ++i) { in canonicalizeMinMaxOp()
192 if (auto bound = constraints.getConstantBound(IntegerPolyhedron::EQ, i)) in canonicalizeMinMaxOp()
203 addLoopRangeConstraints(FlatAffineValueConstraints &constraints, Value iv, in addLoopRangeConstraints() argument
212 unsigned dimIv = constraints.appendDimVar(iv); in addLoopRangeConstraints()
215 lbv ? constraints.appendDimVar(lbv) : constraints.appendDimVar(/*num=*/1); in addLoopRangeConstraints()
218 ubv ? constraints.appendDimVar(ubv) : constraints.appendDimVar(/*num=*/1); in addLoopRangeConstraints()
224 constraints.addBound(IntegerPolyhedron::EQ, dimLb, *lbInt); in addLoopRangeConstraints()
226 constraints.addBound(IntegerPolyhedron::EQ, dimUb, *ubInt); in addLoopRangeConstraints()
229 SmallVector<int64_t> ineqLb(constraints.getNumCols(), 0); in addLoopRangeConstraints()
232 constraints.addInequality(ineqLb); in addLoopRangeConstraints()
252 /*dimCount=*/constraints.getNumDimVars(), in addLoopRangeConstraints()
253 /*symbolCount=*/constraints.getNumSymbolVars(), /*result=*/ivUb); in addLoopRangeConstraints()
255 return constraints.addBound(IntegerPolyhedron::UB, dimIv, map); in addLoopRangeConstraints()
271 FlatAffineValueConstraints constraints; in canonicalizeMinMaxOpInLoop() local
289 addLoopRangeConstraints(constraints, iv, lb, ub, step, rewriter))) in canonicalizeMinMaxOpInLoop()
293 return canonicalizeMinMaxOp(rewriter, op, map, operands, isMin, constraints); in canonicalizeMinMaxOpInLoop()
325 FlatAffineValueConstraints constraints; in rewritePeeledMinMaxOp() local
326 constraints.appendDimVar({iv, ub, step}); in rewritePeeledMinMaxOp()
328 constraints.addBound(IntegerPolyhedron::EQ, 1, *constUb); in rewritePeeledMinMaxOp()
330 constraints.addBound(IntegerPolyhedron::EQ, 2, *constStep); in rewritePeeledMinMaxOp()
338 constraints.addInequality({-1, 1, -1, 0}); in rewritePeeledMinMaxOp()
345 constraints.addInequality({1, -1, 1, -1}); in rewritePeeledMinMaxOp()
348 return canonicalizeMinMaxOp(rewriter, op, map, operands, isMin, constraints); in rewritePeeledMinMaxOp()