Lines Matching defs:bounds
87 mlir::SmallVector<mlir::Value> bounds, bool structured,
135 addOperands(operands, operandSegments, bounds);
209 llvm::SmallVector<mlir::Value> bounds;
217 builder, loc, registerFuncOp.getArgument(0), asFortranDesc, bounds,
230 builder, loc, boxAddrOp.getResult(), asFortran, bounds,
260 llvm::SmallVector<mlir::Value> bounds;
263 builder, loc, boxAddrOp.getResult(), asFortran, bounds,
297 builder, loc, loadOp, asFortran, bounds,
349 llvm::SmallVector<mlir::Value> bounds;
359 operandLocation, asFortran, bounds,
371 builder, operandLocation, baseAddr, asFortran, bounds, structured,
389 llvm::SmallVector<mlir::Value> bounds;
399 operandLocation, asFortran, bounds);
402 builder, operandLocation, info.addr, asFortran, bounds, structured,
574 /// Return true iff all the bounds are expressed with constant values.
575 bool areAllBoundConstant(const llvm::SmallVector<mlir::Value> &bounds) {
576 for (auto bound : bounds) {
613 const llvm::SmallVector<mlir::Value> &bounds, mlir::ValueRange arguments) {
615 if (areAllBoundConstant(bounds)) {
616 for (auto bound : llvm::reverse(bounds)) {
670 mlir::Type ty, llvm::SmallVector<mlir::Value> &bounds) {
699 bool allConstantBound = areAllBoundConstant(bounds);
703 for (mlir::Value bound : llvm::reverse(bounds)) {
727 loc, firBuilder, seqTy, bounds, recipe.getCopyRegion().getArguments());
759 loc, firBuilder, seqTy, bounds, recipe.getCopyRegion().getArguments());
776 /// Get a string representation of the bounds.
777 std::string getBoundsString(llvm::SmallVector<mlir::Value> &bounds) {
779 if (!bounds.empty())
782 bounds,
803 /// Rebuild the array type from the acc.bounds operation with constant
805 mlir::Type getTypeFromBounds(llvm::SmallVector<mlir::Value> &bounds,
809 if (!bounds.empty() && seqTy) {
811 for (auto b : bounds) {
828 if (shape.empty() || shape.size() != bounds.size())
852 llvm::SmallVector<mlir::Value> bounds;
862 operandLocation, asFortran, bounds);
866 mlir::Type retTy = getTypeFromBounds(bounds, info.addr.getType());
874 builder, operandLocation, info.addr, asFortran, bounds, true,
880 areAllBoundConstant(bounds) ? getBoundsString(bounds) : "";
884 builder, recipeName, operandLocation, retTy, bounds);
886 builder, operandLocation, info.addr, asFortran, bounds, true,
1205 llvm::SmallVector<mlir::Value> &bounds,
1215 genShapeFromBoundsOrArgs(loc, builder, seqTy, bounds,
1267 for (auto bound : llvm::reverse(bounds)) {
1313 loc, builder, seqTy, bounds, recipe.getCombinerRegion().getArguments());
1347 llvm::SmallVector<mlir::Value> &bounds) {
1380 bool allConstantBound = areAllBoundConstant(bounds);
1382 for (mlir::Value bound : llvm::reverse(bounds)) {
1398 genCombiner(builder, loc, op, ty, v1, v2, recipe, bounds, allConstantBound);
1433 llvm::SmallVector<mlir::Value> bounds;
1443 operandLocation, asFortran, bounds);
1454 builder, operandLocation, info.addr, asFortran, bounds,
1459 if (!areAllBoundConstant(bounds) ||
1464 areAllBoundConstant(bounds) ? getBoundsString(bounds) : "";
1471 builder, recipeName, operandLocation, ty, mlirOp, bounds);
1820 const Fortran::parser::LoopControl::Bounds *bounds =
1822 assert(bounds && "Expected bounds on the loop construct");
1824 *Fortran::semantics::GetExpr(bounds->lower), stmtCtx)));
1826 *Fortran::semantics::GetExpr(bounds->upper), stmtCtx)));
1827 if (bounds->step)
1829 *Fortran::semantics::GetExpr(bounds->step), stmtCtx)));
1835 bounds->name.thing.symbol->GetUltimate();
3445 llvm::SmallVector<mlir::Value> bounds;
3447 builder, loc, addrOp.getResTy(), asFortran, bounds,
3487 llvm::SmallVector<mlir::Value> bounds;
3493 builder, loc, addrOp, asFortranDesc, bounds,
3505 builder, loc, boxAddrOp.getResult(), asFortran, bounds,
3540 llvm::SmallVector<mlir::Value> bounds;
3543 builder, loc, boxAddrOp.getResult(), asFortran, bounds,
3580 builder, loc, addrOp, asFortran, bounds,