aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Picus <diana.picus@linaro.org>2021-11-09 16:36:24 +0000
committerDiana Picus <diana.picus@linaro.org>2021-11-10 12:27:39 +0000
commitdeafc6fc6de6bb0781984c0a0182a7b75c55926e (patch)
tree801cc09ef276e8401c0e9f985527b8a36008a818
parentaaea92e1cd8f802a99b1c3d3f49b684276578037 (diff)
downloadllvm-deafc6fc6de6bb0781984c0a0182a7b75c55926e.zip
llvm-deafc6fc6de6bb0781984c0a0182a7b75c55926e.tar.gz
llvm-deafc6fc6de6bb0781984c0a0182a7b75c55926e.tar.bz2
[fir] Add !fir.ptr type conversion
This patch is part of the upstreaming effort for fir-dev. Differential Revision: https://reviews.llvm.org/D113559 Co-authored-by: Jean Perier <jperier@nvidia.com>
-rw-r--r--flang/lib/Optimizer/CodeGen/TypeConverter.h2
-rw-r--r--flang/test/Fir/types-to-llvm.fir12
2 files changed, 14 insertions, 0 deletions
diff --git a/flang/lib/Optimizer/CodeGen/TypeConverter.h b/flang/lib/Optimizer/CodeGen/TypeConverter.h
index f4d252d..2f5eb06 100644
--- a/flang/lib/Optimizer/CodeGen/TypeConverter.h
+++ b/flang/lib/Optimizer/CodeGen/TypeConverter.h
@@ -42,6 +42,8 @@ public:
&getContext(), kindMapping.getLogicalBitsize(boolTy.getFKind()));
});
addConversion(
+ [&](fir::PointerType pointer) { return convertPointerLike(pointer); });
+ addConversion(
[&](fir::RecordType derived) { return convertRecordType(derived); });
addConversion(
[&](fir::ComplexType cmplx) { return convertComplexType(cmplx); });
diff --git a/flang/test/Fir/types-to-llvm.fir b/flang/test/Fir/types-to-llvm.fir
index 3bf56d6..94b1a0b 100644
--- a/flang/test/Fir/types-to-llvm.fir
+++ b/flang/test/Fir/types-to-llvm.fir
@@ -31,6 +31,18 @@ func private @foo1(%arg0: !fir.ref<!fir.array<10xf32>>)
// -----
+// Test pointer types `!fir.ptr`
+
+func private @foo0(%arg0: !fir.ptr<i32>)
+// CHECK-LABEL: foo0
+// CHECK-SAME: !llvm.ptr<i32>
+
+func private @foo1(%arg0: !fir.ptr<!fir.array<10xf32>>)
+// CHECK-LABEL: foo1
+// CHECK-SAME: !llvm.ptr<array<10 x f32>>
+
+// -----
+
// Test box types `!fir.box`
func private @foo0(%arg0: !fir.box<!fir.array<?xf32>>)