Lines Matching defs:ty

46   /// Does the type \p ty need to be converted?
53 bool needsConversion(mlir::Type ty) {
54 if (mlir::isa<BoxProcType>(ty))
56 if (auto funcTy = mlir::dyn_cast<mlir::FunctionType>(ty)) {
65 if (auto tupleTy = mlir::dyn_cast<mlir::TupleType>(ty)) {
71 if (auto recTy = mlir::dyn_cast<RecordType>(ty)) {
72 auto [visited, inserted] = visitedTypes.try_emplace(ty, false);
93 visitedTypes.erase(ty);
95 visitedTypes.find(ty)->second = result;
98 if (auto boxTy = mlir::dyn_cast<BaseBoxType>(ty))
100 if (isa_ref_type(ty))
101 return needsConversion(unwrapRefType(ty));
102 if (auto t = mlir::dyn_cast<SequenceType>(ty))
103 return needsConversion(unwrapSequenceType(ty));
104 if (auto t = mlir::dyn_cast<TypeDescType>(ty))
110 addConversion([](mlir::Type ty) { return ty; });
115 for (auto ty : tupTy.getTypes())
116 memTys.push_back(convertType(ty));
122 for (auto ty : funcTy.getInputs())
123 inTys.push_back(convertType(ty));
124 for (auto ty : funcTy.getResults())
125 resTys.push_back(convertType(ty));
128 addConversion([&](ReferenceType ty) {
129 return ReferenceType::get(convertType(ty.getEleTy()));
131 addConversion([&](PointerType ty) {
132 return PointerType::get(convertType(ty.getEleTy()));
135 [&](HeapType ty) { return HeapType::get(convertType(ty.getEleTy())); });
136 addConversion([&](fir::LLVMPointerType ty) {
137 return fir::LLVMPointerType::get(convertType(ty.getEleTy()));
140 [&](BoxType ty) { return BoxType::get(convertType(ty.getEleTy())); });
141 addConversion([&](ClassType ty) {
142 return ClassType::get(convertType(ty.getEleTy()));
144 addConversion([&](SequenceType ty) {
145 // TODO: add ty.getLayoutMap() as needed.
146 return SequenceType::get(ty.getShape(), convertType(ty.getEleTy()));
148 addConversion([&](RecordType ty) -> mlir::Type {
149 if (!needsConversion(ty))
150 return ty;
151 if (auto converted = convertedTypes.lookup(ty))
153 auto rec = RecordType::get(ty.getContext(),
154 ty.getName().str() + boxprocSuffix.str());
157 [[maybe_unused]] auto it = convertedTypes.try_emplace(ty, rec);
158 assert(it.second && "expected ty to not be in the map");
159 std::vector<RecordType::TypePair> ps = ty.getLenParamList();
161 for (auto t : ty.getTypeList()) {
168 rec.pack(ty.isPacked());
171 addConversion([&](TypeDescType ty) {
172 return TypeDescType::get(convertType(ty.getOfTy()));
230 mlir::Type ty = addr.getVal().getType();
232 if (llvm::isa<mlir::FunctionType>(ty) ||
233 llvm::isa<fir::BoxProcType>(ty)) {
246 mlir::FunctionType ty = func.getFunctionType();
247 if (typeConverter.needsConversion(ty)) {
250 mlir::cast<mlir::FunctionType>(typeConverter.convertType(ty));
307 auto ty = global.getType();
308 if (typeConverter.needsConversion(ty)) {
310 auto toTy = typeConverter.convertType(ty);
315 auto ty = mem.getType();
316 if (typeConverter.needsConversion(ty)) {
318 auto toTy = typeConverter.convertType(unwrapRefType(ty));
330 auto ty = mem.getType();
331 if (typeConverter.needsConversion(ty)) {
333 auto toTy = typeConverter.convertType(unwrapRefType(ty));
344 auto ty = coor.getType();
346 if (typeConverter.needsConversion(ty) ||
349 auto toTy = typeConverter.convertType(ty);
356 auto ty = index.getType();
358 if (typeConverter.needsConversion(ty) ||
361 auto toTy = typeConverter.convertType(ty);
368 auto ty = index.getType();
370 if (typeConverter.needsConversion(ty) ||
373 auto toTy = typeConverter.convertType(ty);