diff options
author | Diana Picus <diana.picus@linaro.org> | 2021-11-09 16:36:24 +0000 |
---|---|---|
committer | Diana Picus <diana.picus@linaro.org> | 2021-11-10 12:27:39 +0000 |
commit | deafc6fc6de6bb0781984c0a0182a7b75c55926e (patch) | |
tree | 801cc09ef276e8401c0e9f985527b8a36008a818 | |
parent | aaea92e1cd8f802a99b1c3d3f49b684276578037 (diff) | |
download | llvm-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.h | 2 | ||||
-rw-r--r-- | flang/test/Fir/types-to-llvm.fir | 12 |
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>>) |