Lines Matching defs:recTy
397 .template Case<fir::RecordType>([&](fir::RecordType recTy) {
399 classifyStruct(loc, recTy, byteOffset, Lo, Hi);
425 std::uint64_t classifyStruct(mlir::Location loc, fir::RecordType recTy,
428 for (auto component : recTy.getTypeList()) {
538 /// When \p recTy is a one field record type that can be passed
541 mlir::Type passAsFieldIfOneFieldStruct(fir::RecordType recTy,
543 auto typeList = recTy.getTypeList();
595 structArgumentType(mlir::Location loc, fir::RecordType recTy,
600 byteOffset = classifyStruct(loc, recTy, byteOffset, Lo, Hi);
604 return passOnTheStack(loc, recTy, /*isResult=*/false);
620 return passOnTheStack(loc, recTy, /*isResult=*/false);
622 if (auto fieldType = passAsFieldIfOneFieldStruct(recTy)) {
630 pickLLVMArgType(loc, recTy.getContext(), Lo, byteOffset);
643 mlir::Type lowType = pickLLVMArgType(loc, recTy.getContext(), Lo, 8u);
645 pickLLVMArgType(loc, recTy.getContext(), Hi, byteOffset - 8u);
653 structReturnType(mlir::Location loc, fir::RecordType recTy) const override {
657 byteOffset = classifyStruct(loc, recTy, byteOffset, Lo, Hi);
658 mlir::MLIRContext *context = recTy.getContext();
661 return passOnTheStack(loc, recTy, /*isResult=*/true);
675 passAsFieldIfOneFieldStruct(recTy, /*allowComplex=*/true)) {
839 if (auto recTy = mlir::dyn_cast<RecordType>(type)) {
840 auto subTypeList = flattenTypeList(recTy.getTypeList());
854 if (auto recTy = mlir::dyn_cast<RecordType>(eleTy)) {
855 auto subTypeList = flattenTypeList(recTy.getTypeList());
1402 .template Case<fir::RecordType>([&](fir::RecordType recTy) {
1403 for (auto &component : recTy.getTypeList()) {
1435 bool detectFARsEligibleStruct(mlir::Location loc, fir::RecordType recTy,
1439 llvm::SmallVector<mlir::Type> flatTypes = flattenTypeList(loc, recTy);
1567 classifyStruct(mlir::Location loc, fir::RecordType recTy, int GARsLeft,
1573 loc, recTy, getDataLayout(), kindMap);
1574 mlir::MLIRContext *context = recTy.getContext();
1583 fir::ReferenceType::get(recTy),
1590 if (detectFARsEligibleStruct(loc, recTy, field1Ty, field2Ty) &&
1632 structArgumentType(mlir::Location loc, fir::RecordType recTy,
1637 return classifyStruct(loc, recTy, GARsLeft, FARsLeft, /*isResult=*/false,
1642 structReturnType(mlir::Location loc, fir::RecordType recTy) const override {
1646 return classifyStruct(loc, recTy, GARsLeft, FARsLeft, /*isResult=*/true,