[flang-commits] [PATCH] D114241: [fir] Add !fir.len_param_index conversion
Diana Picus via Phabricator via flang-commits
flang-commits at lists.llvm.org
Fri Nov 19 06:09:33 PST 2021
rovka added inline comments.
================
Comment at: flang/lib/Optimizer/CodeGen/CodeGen.cpp:852
+ // add the offset into the LENs
+ offset += 0; // FIXME
+ auto attr = rewriter.getI64IntegerAttr(offset);
----------------
I'm not entirely sure what we're supposed to compute here. My understanding is that we have a CFI_cdesc_t with an addendum right after it, and the addendum looks [[ https://github.com/llvm/llvm-project/blob/6623c02d70c3732dbea59c6d79c69501baf9627b/flang/include/flang/Runtime/descriptor.h#L84 | like DescriptorAddendum ]].
So the offset we're trying to compute needs to skip over the whole CFI_cdesc_t and then the derivedType_ member, and potentially other LEN parameters that come first in len_.
Is this correct?
Also, what's [[ https://github.com/flang-compiler/f18-llvm-project/blob/1e39e4822cbe2fedbc5dc269ade9f430287a0eda/flang/lib/Optimizer/CodeGen/TypeConverter.h#L213 | this TODO ]] about?
================
Comment at: flang/test/Fir/convert-to-llvm-target.fir:162
+ %5 = fir.len_param_index l2, !fir.type<twolens>
+ %6 = fir.len_param_index l, !fir.type<twolens>
+
----------------
Why does it work to use the names of fields? I would expect it to blow up if we pass something that isn't a len param.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114241/new/
https://reviews.llvm.org/D114241
More information about the flang-commits
mailing list