[llvm-dev] [DebugInfo] DIBuilder missing interface to generate DWARF info for packed_decimal basic type.

Mattias Eriksson V via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 28 08:24:13 PDT 2018


On 08/23/2018 06:59 AM, Chirag Patel via llvm-dev wrote:
> Hello Paul,
> 
> Thanks for the reply.
> 
> Yes, I am only looking for dwarf support at the moment and planning to 
> support both PLI/COBOL decimal types. Also thanks for the suggestion, 
> you are right as it is going to be rare cases, so it will be better to 
> implement a separate subclass to avoid memory overhead for others.
> 
>>>  (Somebody is actively working on scaled binary operations, although they have not yet gotten to the point of wanting to support debug info.)
> 
> If possible, can you kindly get me in touch with them so I would not 
> spend time on which is already been done?

Hi!

In our out-of-tree compiler we have added custom types for the 
fixed-point types that we support. (We also use an out-of-tree gdb).

So unfortunately this means that we have not done any work on getting 
any of the general Dwarf to work for these types.

--
Mattias

> 
> Regards,
> 
> *Chirag Patel*| Software Engineer*
> RAINCODE* Mainframe to .NET
> 
> *Tel* : +91 080 41159811| *Mob* : +91 90493 36744
> www.raincodelabs.com <http://www.raincodelabs.com/>__
> 
> *From:*paul.robinson at sony.com <paul.robinson at sony.com>
> *Sent:* 22 August 2018 23:03
> *To:* Chirag Patel <Chirag at raincode.com>
> *Cc:* llvm-dev at lists.llvm.org
> *Subject:* RE: [llvm-dev] [DebugInfo] DIBuilder missing interface to 
> generate DWARF info for packed_decimal basic type.
> 
> Hi Chirag,
> 
> The DW_ATE_packed_decimal (etc) constants exist because they are merely 
> additional values in an enumeration, and we just added all the values 
> defined in DWARF to the enumeration .  LLVM does not actually support 
> any of the decimal types, or scaled binary types.  (Somebody is actively 
> working on scaled binary operations, although they have not yet gotten 
> to the point of wanting to support debug info.)
> 
> Without spending much time thinking about it, my inclination would be to 
> add a new method to DIBuilder for the decimal and scaled binary types, 
> because the additional parameters are meaningless in any other context.  
> You might also consider whether to add a separate subclass of 
> DIBasicType to handling scaling and decimal attributes.  The decimal and 
> scaled types are quite unusual, and we would not want to impose 
> additional memory cost on all basic types to support these relatively 
> rare cases.
> 
> Are you planning to support all the decimal types?  I know the OpenVMS 
> people will also want them, for COBOL and other languages, so there's 
> benefit in having proper support in LLVM.  But even if you are 
> interested only in packed decimal, the infrastructure ought to be 
> designed to handle all cases.
> 
> Thanks,
> 
> --paulr
> 
> (who helped design the DWARF support for COBOL types a long time ago)
> 
> *From:*llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] *On Behalf Of 
> *Chirag Patel via llvm-dev
> *Sent:* Wednesday, August 22, 2018 2:10 AM
> *To:* llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> *Subject:* [llvm-dev] [DebugInfo] DIBuilder missing interface to 
> generate DWARF info for packed_decimal basic type.
> 
> Adding tags on subject line
> 
> *From:*Chirag Patel
> *Sent:* 22 August 2018 11:20
> *To:* llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> *Subject:* DIBuilder missing interface to generate DWARF info for 
> packed_decimal basic type.
> 
> Hello,
> 
> I am working on a llvm based compiler frontend in which, I am using the 
> packed_decimal type encoding.
> 
> During using the llvm DIBuilder, I found out that the interface to 
> create BasicType with packed_decimal encoding(DW_ATE_packed_decimal), is 
> missing all the related encoding stuff,
> 
> Like
> 
> (Missing)
> 
>                 DW_AT_picture_string – should be MDString Node – not 
> decided yet.
> 
>                 DW_AT_decimal_sign – May be in DIflags with mask (5 
> distinct inputs), like FlagDSOverPunch, etc
> 
>                 DW_AT_digit_count – unsigned integer, like unsigned 
> DigitCount
> 
>                 DW_AT_decimal_scale – integer, like int DecimalScale
> 
> I am looking to add this info in DIBasicType class (DebugInfoMetadata.h) 
> and would appreciate advice on above location.
> 
> Regrads,
> 
> **
> 
> *Chirag Patel*| Software Engineer*
> RAINCODE* Mainframe to .NET
> 
> *Tel* : +91 080 41159811| *Mob* : +91 90493 36744
> www.raincodelabs.com <http://www.raincodelabs.com/>__
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 




More information about the llvm-dev mailing list