Lines Matching refs:expr
35 IntegerAttr constantFold(AffineExpr expr) { in constantFold() argument
36 if (auto result = constantFoldImpl(expr)) in constantFold()
37 return IntegerAttr::get(IndexType::get(expr.getContext()), *result); in constantFold()
42 Optional<int64_t> constantFoldImpl(AffineExpr expr) { in constantFoldImpl() argument
43 switch (expr.getKind()) { in constantFoldImpl()
46 expr, [](int64_t lhs, int64_t rhs) { return lhs + rhs; }); in constantFoldImpl()
49 expr, [](int64_t lhs, int64_t rhs) { return lhs * rhs; }); in constantFoldImpl()
52 expr, [](int64_t lhs, int64_t rhs) { return mod(lhs, rhs); }); in constantFoldImpl()
55 expr, [](int64_t lhs, int64_t rhs) { return floorDiv(lhs, rhs); }); in constantFoldImpl()
58 expr, [](int64_t lhs, int64_t rhs) { return ceilDiv(lhs, rhs); }); in constantFoldImpl()
60 return expr.cast<AffineConstantExpr>().getValue(); in constantFoldImpl()
62 if (auto attr = operandConsts[expr.cast<AffineDimExpr>().getPosition()] in constantFoldImpl()
68 expr.cast<AffineSymbolExpr>().getPosition()] in constantFoldImpl()
77 Optional<int64_t> constantFoldBinExpr(AffineExpr expr, in constantFoldBinExpr() argument
79 auto binOpExpr = expr.cast<AffineBinaryOpExpr>(); in constantFoldBinExpr()
126 AffineExpr expr = idxAndExpr.value(); in isMinorIdentityWithBroadcasting() local
127 if (auto constExpr = expr.dyn_cast<AffineConstantExpr>()) { in isMinorIdentityWithBroadcasting()
133 } else if (auto dimExpr = expr.dyn_cast<AffineDimExpr>()) { in isMinorIdentityWithBroadcasting()
173 AffineExpr expr = idxAndExpr.value(); in isPermutationOfMinorIdentityWithBroadcasting() local
176 if (auto constExpr = expr.dyn_cast<AffineConstantExpr>()) { in isPermutationOfMinorIdentityWithBroadcasting()
180 } else if (auto dimExpr = expr.dyn_cast<AffineDimExpr>()) { in isPermutationOfMinorIdentityWithBroadcasting()
260 auto expr = results[i].dyn_cast<AffineDimExpr>(); in isIdentity() local
261 if (!expr || expr.getPosition() != i) in isIdentity()
276 return llvm::all_of(getResults(), [](AffineExpr expr) { in isConstant() argument
277 return expr.isa<AffineConstantExpr>(); in isConstant()
289 for (auto expr : getResults()) in getConstantResults() local
290 result.emplace_back(expr.cast<AffineConstantExpr>().getValue()); in getConstantResults()
359 for (auto expr : getResults()) { in partialConstantFold() local
360 auto folded = exprFolder.constantFold(expr); in partialConstantFold()
369 exprs.push_back(expr); in partialConstantFold()
383 for (auto expr : getResults()) in walkExprs() local
384 expr.walk(callback); in walkExprs()
398 for (auto expr : getResults()) in replaceDimsAndSymbols() local
400 expr.replaceDimsAndSymbols(dimReplacements, symReplacements)); in replaceDimsAndSymbols()
407 AffineMap AffineMap::replace(AffineExpr expr, AffineExpr replacement, in replace() argument
413 newResults.push_back(e.replace(expr, replacement)); in replace()
458 for (auto expr : getResults()) in compose() local
459 exprs.push_back(expr.compose(newMap)); in compose()
492 for (auto expr : getResults()) { in isProjectedPermutation() local
493 if (auto dim = expr.dyn_cast<AffineDimExpr>()) { in isProjectedPermutation()
498 auto constExpr = expr.dyn_cast<AffineConstantExpr>(); in isProjectedPermutation()
622 map.walkExprs([&](AffineExpr expr) { in compressUnusedSymbols() argument
623 if (auto symExpr = expr.dyn_cast<AffineSymbolExpr>()) in compressUnusedSymbols()
659 auto expr = en.value(); in inversePermutation() local
661 if (auto d = expr.dyn_cast<AffineDimExpr>()) { in inversePermutation()
669 for (auto expr : exprs) in inversePermutation() local
670 if (expr) in inversePermutation()
671 seenExprs.push_back(expr); in inversePermutation()