Lines Matching refs:box

388       [&](const fir::ArrayBoxValue &box) { return genShape(loc, box); },  in createShape()  argument
389 [&](const fir::CharArrayBoxValue &box) { return genShape(loc, box); }, in createShape() argument
390 [&](const fir::BoxValue &box) -> mlir::Value { in createShape() argument
391 if (!box.getLBounds().empty()) { in createShape()
393 fir::ShiftType::get(getContext(), box.getLBounds().size()); in createShape()
394 return create<fir::ShiftOp>(loc, shiftType, box.getLBounds()); in createShape()
437 [&](const fir::ArrayBoxValue &box) { in createSlice() argument
438 return fullShape(box.getLBounds(), box.getExtents()); in createSlice()
440 [&](const fir::CharArrayBoxValue &box) { in createSlice() argument
441 return fullShape(box.getLBounds(), box.getExtents()); in createSlice()
443 [&](const fir::BoxValue &box) { in createSlice() argument
444 auto extents = fir::factory::readExtents(*this, loc, box); in createSlice()
445 return fullShape(box.getLBounds(), extents); in createSlice()
470 [&](const fir::ArrayBoxValue &box) -> mlir::Value { in createBox() argument
474 [&](const fir::CharArrayBoxValue &box) -> mlir::Value { in createBox() argument
480 llvm::SmallVector<mlir::Value> lenParams{box.getLen()}; in createBox()
484 [&](const fir::CharBoxValue &box) -> mlir::Value { in createBox() argument
488 llvm::SmallVector<mlir::Value> lenParams{box.getLen()}; in createBox()
548 const fir::ExtendedValue &box) { in readCharLen() argument
549 return box.match( in readCharLen()
573 const fir::ExtendedValue &box, in readExtent() argument
575 assert(box.rank() > dim); in readExtent()
576 return box.match( in readExtent()
605 const fir::ExtendedValue &box, in readLowerBound() argument
608 assert(box.rank() > dim); in readLowerBound()
609 auto lb = box.match( in readLowerBound()
634 const fir::BoxValue &box) { in readExtents() argument
636 auto explicitExtents = box.getExplicitExtents(); in readExtents()
641 auto rank = box.rank(); in readExtents()
646 box.getAddr(), dimVal); in readExtents()
654 const fir::ExtendedValue &box) { in getExtents() argument
655 return box.match( in getExtents()
674 const fir::BoxValue &box) { in readBoxValue() argument
675 assert(!box.isUnlimitedPolymorphic() && !box.hasAssumedRank() && in readBoxValue()
678 builder.create<fir::BoxAddrOp>(loc, box.getMemTy(), box.getAddr()); in readBoxValue()
679 if (box.isCharacter()) { in readBoxValue()
680 auto len = fir::factory::readCharLen(builder, loc, box); in readBoxValue()
681 if (box.rank() == 0) in readBoxValue()
684 fir::factory::readExtents(builder, loc, box), in readBoxValue()
685 box.getLBounds()); in readBoxValue()
687 if (box.isDerivedWithLenParameters()) in readBoxValue()
689 if (box.rank() == 0) in readBoxValue()
691 return fir::ArrayBoxValue(addr, fir::factory::readExtents(builder, loc, box), in readBoxValue()
692 box.getLBounds()); in readBoxValue()
707 [&](const fir::BoxValue &box) -> llvm::SmallVector<mlir::Value> { in getNonDefaultLowerBounds() argument
708 return {box.getLBounds().begin(), box.getLBounds().end()}; in getNonDefaultLowerBounds()
710 [&](const fir::MutableBoxValue &box) -> llvm::SmallVector<mlir::Value> { in getNonDefaultLowerBounds() argument
711 auto load = fir::factory::genMutableBoxRead(builder, loc, box); in getNonDefaultLowerBounds()
724 [&](const fir::MutableBoxValue &box) -> llvm::SmallVector<mlir::Value> { in getNonDeferredLenParams() argument
725 return {box.nonDeferredLenParams().begin(), in getNonDeferredLenParams()
726 box.nonDeferredLenParams().end()}; in getNonDeferredLenParams()
728 [&](const fir::BoxValue &box) -> llvm::SmallVector<mlir::Value> { in getNonDeferredLenParams() argument
729 return {box.getExplicitParameters().begin(), in getNonDeferredLenParams()
730 box.getExplicitParameters().end()}; in getNonDeferredLenParams()
772 auto handleBoxed = [&](const auto &box) -> llvm::SmallVector<mlir::Value> { in getTypeParams() argument
773 if (box.isCharacter()) in getTypeParams()
775 if (box.isDerivedWithLenParameters()) { in getTypeParams()
786 [&](const fir::BoxValue &box) { return handleBoxed(box); }, in getTypeParams() argument
787 [&](const fir::MutableBoxValue &box) { return handleBoxed(box); }, in getTypeParams() argument
950 [&](const fir::BoxValue &box) -> fir::ExtendedValue { in arrayElementToExtendedValue() argument
951 if (box.isCharacter()) { in arrayElementToExtendedValue()
952 auto len = fir::factory::readCharLen(builder, loc, box); in arrayElementToExtendedValue()
955 if (box.isDerivedWithLenParameters()) in arrayElementToExtendedValue()