[flang-commits] [flang] b67be52 - [fir] Add !fir.field type conversion
Valentin Clement via flang-commits
flang-commits at lists.llvm.org
Thu Nov 11 06:40:26 PST 2021
Author: Valentin Clement
Date: 2021-11-11T15:40:15+01:00
New Revision: b67be520548ec3c251f8e723ad36e0b311b3dbc3
URL: https://github.com/llvm/llvm-project/commit/b67be520548ec3c251f8e723ad36e0b311b3dbc3
DIFF: https://github.com/llvm/llvm-project/commit/b67be520548ec3c251f8e723ad36e0b311b3dbc3.diff
LOG: [fir] Add !fir.field type conversion
This patch adds conversion for !fir.field types.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D113669
Co-authored-by: Eric Schweitz <eschweitz at nvidia.com>
Added:
Modified:
flang/lib/Optimizer/CodeGen/TypeConverter.h
flang/test/Fir/types-to-llvm.fir
Removed:
################################################################################
diff --git a/flang/lib/Optimizer/CodeGen/TypeConverter.h b/flang/lib/Optimizer/CodeGen/TypeConverter.h
index 8595513c84b9..7295da2a4e29 100644
--- a/flang/lib/Optimizer/CodeGen/TypeConverter.h
+++ b/flang/lib/Optimizer/CodeGen/TypeConverter.h
@@ -64,6 +64,10 @@ class LLVMTypeConverter : public mlir::LLVMTypeConverter {
[&](fir::PointerType pointer) { return convertPointerLike(pointer); });
addConversion(
[&](fir::RecordType derived) { return convertRecordType(derived); });
+ addConversion([&](fir::FieldType field) {
+ // Convert to i32 because of LLVM GEP indexing restriction.
+ return mlir::IntegerType::get(field.getContext(), 32);
+ });
addConversion(
[&](fir::ComplexType cmplx) { return convertComplexType(cmplx); });
addConversion(
diff --git a/flang/test/Fir/types-to-llvm.fir b/flang/test/Fir/types-to-llvm.fir
index 6d6f1c652eac..e872a3a514ac 100644
--- a/flang/test/Fir/types-to-llvm.fir
+++ b/flang/test/Fir/types-to-llvm.fir
@@ -215,3 +215,11 @@ func private @foo0(%arg0: !fir.boxchar<1>)
func private @foo1(%arg0: !fir.boxchar<2>)
// CHECK-LABEL: foo1
// CHECK-SAME: !llvm.struct<(ptr<i16>, i64)>
+
+// -----
+
+// Test `!fir.field` conversion
+
+func private @foo0(%arg0: !fir.field)
+// CHECK-LABEL: foo0
+// CHECK-SAME: i32
More information about the flang-commits
mailing list