Skip to content

Commit 0b626df

Browse files
committed
[flang][NFC] Reorder conversions
During upstreaming the alphabetical order was not respected.
1 parent 01f19cd commit 0b626df

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

flang/lib/Optimizer/CodeGen/TypeConverter.h

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,22 @@ class LLVMTypeConverter : public mlir::LLVMTypeConverter {
6666
});
6767
addConversion(
6868
[&](fir::CharacterType charTy) { return convertCharType(charTy); });
69+
addConversion(
70+
[&](fir::ComplexType cmplx) { return convertComplexType(cmplx); });
71+
addConversion([&](fir::FieldType field) {
72+
// Convert to i32 because of LLVM GEP indexing restriction.
73+
return mlir::IntegerType::get(field.getContext(), 32);
74+
});
6975
addConversion([&](HeapType heap) { return convertPointerLike(heap); });
7076
addConversion([&](fir::IntegerType intTy) {
7177
return mlir::IntegerType::get(
7278
&getContext(), kindMapping.getIntegerBitsize(intTy.getFKind()));
7379
});
80+
addConversion([&](fir::LenType field) {
81+
// Get size of len paramter from the descriptor.
82+
return getModel<Fortran::runtime::typeInfo::TypeParameterValue>()(
83+
&getContext());
84+
});
7485
addConversion([&](fir::LogicalType boolTy) {
7586
return mlir::IntegerType::get(
7687
&getContext(), kindMapping.getLogicalBitsize(boolTy.getFKind()));
@@ -80,21 +91,11 @@ class LLVMTypeConverter : public mlir::LLVMTypeConverter {
8091
});
8192
addConversion(
8293
[&](fir::PointerType pointer) { return convertPointerLike(pointer); });
83-
addConversion([&](fir::RecordType derived, SmallVectorImpl<Type> &results,
84-
ArrayRef<Type> callStack) {
94+
addConversion([&](fir::RecordType derived,
95+
SmallVectorImpl<mlir::Type> &results,
96+
ArrayRef<mlir::Type> callStack) {
8597
return convertRecordType(derived, results, callStack);
8698
});
87-
addConversion([&](fir::FieldType field) {
88-
// Convert to i32 because of LLVM GEP indexing restriction.
89-
return mlir::IntegerType::get(field.getContext(), 32);
90-
});
91-
addConversion([&](fir::LenType field) {
92-
// Get size of len paramter from the descriptor.
93-
return getModel<Fortran::runtime::typeInfo::TypeParameterValue>()(
94-
&getContext());
95-
});
96-
addConversion(
97-
[&](fir::ComplexType cmplx) { return convertComplexType(cmplx); });
9899
addConversion(
99100
[&](fir::RealType real) { return convertRealType(real.getFKind()); });
100101
addConversion(
@@ -134,8 +135,9 @@ class LLVMTypeConverter : public mlir::LLVMTypeConverter {
134135

135136
// fir.type<name(p : TY'...){f : TY...}> --> llvm<"%name = { ty... }">
136137
llvm::Optional<LogicalResult>
137-
convertRecordType(fir::RecordType derived, SmallVectorImpl<Type> &results,
138-
ArrayRef<Type> callStack) {
138+
convertRecordType(fir::RecordType derived,
139+
SmallVectorImpl<mlir::Type> &results,
140+
ArrayRef<mlir::Type> callStack) {
139141
auto name = derived.getName();
140142
auto st = mlir::LLVM::LLVMStructType::getIdentified(&getContext(), name);
141143
if (llvm::count(callStack, derived) > 1) {
@@ -269,12 +271,6 @@ class LLVMTypeConverter : public mlir::LLVMTypeConverter {
269271
return convertType(specifics->complexMemoryType(eleTy));
270272
}
271273

272-
// convert a front-end kind value to either a std or LLVM IR dialect type
273-
// fir.real<n> --> llvm.anyfloat where anyfloat is a kind mapping
274-
mlir::Type convertRealType(fir::KindTy kind) {
275-
return fromRealTypeID(kindMapping.getRealTypeID(kind), kind);
276-
}
277-
278274
template <typename A>
279275
mlir::Type convertPointerLike(A &ty) {
280276
mlir::Type eleTy = ty.getEleTy();
@@ -302,6 +298,12 @@ class LLVMTypeConverter : public mlir::LLVMTypeConverter {
302298
return mlir::LLVM::LLVMPointerType::get(convertType(eleTy));
303299
}
304300

301+
// convert a front-end kind value to either a std or LLVM IR dialect type
302+
// fir.real<n> --> llvm.anyfloat where anyfloat is a kind mapping
303+
mlir::Type convertRealType(fir::KindTy kind) {
304+
return fromRealTypeID(kindMapping.getRealTypeID(kind), kind);
305+
}
306+
305307
// fir.array<c ... :any> --> llvm<"[...[c x any]]">
306308
mlir::Type convertSequenceType(SequenceType seq) {
307309
auto baseTy = convertType(seq.getEleTy());

0 commit comments

Comments
 (0)