[PATCH] D113553: [fir] Use contralized values for indexing box
Valentin Clement via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 10 06:35:30 PST 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5eca6ad75274: [fir] Use contralized values for indexing box (authored by clementval).
Changed prior to commit:
https://reviews.llvm.org/D113553?vs=386101&id=386142#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113553/new/
https://reviews.llvm.org/D113553
Files:
flang/lib/Optimizer/CodeGen/TypeConverter.h
Index: flang/lib/Optimizer/CodeGen/TypeConverter.h
===================================================================
--- flang/lib/Optimizer/CodeGen/TypeConverter.h
+++ flang/lib/Optimizer/CodeGen/TypeConverter.h
@@ -21,6 +21,18 @@
#include "llvm/ADT/StringMap.h"
#include "llvm/Support/Debug.h"
+// Position of the different values in a `fir.box`.
+static constexpr unsigned kAddrPosInBox = 0;
+static constexpr unsigned kElemLenPosInBox = 1;
+static constexpr unsigned kVersionPosInBox = 2;
+static constexpr unsigned kRankPosInBox = 3;
+static constexpr unsigned kTypePosInBox = 4;
+static constexpr unsigned kAttributePosInBox = 5;
+static constexpr unsigned kF18AddendumPosInBox = 6;
+static constexpr unsigned kDimsPosInBox = 7;
+static constexpr unsigned kOptTypePtrPosInBox = 8;
+static constexpr unsigned kOptRowTypePosInBox = 9;
+
namespace fir {
/// FIR type converter
@@ -107,17 +119,23 @@
else
dataDescFields.push_back(mlir::LLVM::LLVMPointerType::get(eleTy));
// elem_len
- dataDescFields.push_back(getDescFieldTypeModel<1>()(&getContext()));
+ dataDescFields.push_back(
+ getDescFieldTypeModel<kElemLenPosInBox>()(&getContext()));
// version
- dataDescFields.push_back(getDescFieldTypeModel<2>()(&getContext()));
+ dataDescFields.push_back(
+ getDescFieldTypeModel<kVersionPosInBox>()(&getContext()));
// rank
- dataDescFields.push_back(getDescFieldTypeModel<3>()(&getContext()));
+ dataDescFields.push_back(
+ getDescFieldTypeModel<kRankPosInBox>()(&getContext()));
// type
- dataDescFields.push_back(getDescFieldTypeModel<4>()(&getContext()));
+ dataDescFields.push_back(
+ getDescFieldTypeModel<kTypePosInBox>()(&getContext()));
// attribute
- dataDescFields.push_back(getDescFieldTypeModel<5>()(&getContext()));
+ dataDescFields.push_back(
+ getDescFieldTypeModel<kAttributePosInBox>()(&getContext()));
// f18Addendum
- dataDescFields.push_back(getDescFieldTypeModel<6>()(&getContext()));
+ dataDescFields.push_back(
+ getDescFieldTypeModel<kF18AddendumPosInBox>()(&getContext()));
// [dims]
if (rank == unknownRank()) {
if (auto seqTy = ele.dyn_cast<SequenceType>())
@@ -126,14 +144,15 @@
rank = 0;
}
if (rank > 0) {
- auto rowTy = getDescFieldTypeModel<7>()(&getContext());
+ auto rowTy = getDescFieldTypeModel<kDimsPosInBox>()(&getContext());
dataDescFields.push_back(mlir::LLVM::LLVMArrayType::get(rowTy, rank));
}
// opt-type-ptr: i8* (see fir.tdesc)
if (requiresExtendedDesc(ele)) {
dataDescFields.push_back(
- getExtendedDescFieldTypeModel<8>()(&getContext()));
- auto rowTy = getExtendedDescFieldTypeModel<9>()(&getContext());
+ getExtendedDescFieldTypeModel<kOptTypePtrPosInBox>()(&getContext()));
+ auto rowTy =
+ getExtendedDescFieldTypeModel<kOptRowTypePosInBox>()(&getContext());
dataDescFields.push_back(mlir::LLVM::LLVMArrayType::get(rowTy, 1));
if (auto recTy = fir::unwrapSequenceType(ele).dyn_cast<fir::RecordType>())
if (recTy.getNumLenParams() > 0) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113553.386142.patch
Type: text/x-patch
Size: 3155 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211110/a42d9cb3/attachment.bin>
More information about the llvm-commits
mailing list