<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:spsup="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle20
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi Chirag,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">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.)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">--paulr<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">(who helped design the DWARF support for COBOL types a long time ago)<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="color:#1F497D"><o:p> </o:p></span></a></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org]
<b>On Behalf Of </b>Chirag Patel via llvm-dev<br>
<b>Sent:</b> Wednesday, August 22, 2018 2:10 AM<br>
<b>To:</b> llvm-dev@lists.llvm.org<br>
<b>Subject:</b> [llvm-dev] [DebugInfo] DIBuilder missing interface to generate DWARF info for packed_decimal basic type.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-IN">Adding tags on subject line<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="mso-fareast-language:EN-IN">From:</span></b><span style="mso-fareast-language:EN-IN"> Chirag Patel
<br>
<b>Sent:</b> 22 August 2018 11:20<br>
<b>To:</b> llvm-dev@lists.llvm.org<br>
<b>Subject:</b> DIBuilder missing interface to generate DWARF info for packed_decimal basic type.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">I am working on a llvm based compiler frontend in which, I am using the packed_decimal type encoding.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">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,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">Like <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">(Missing)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"> DW_AT_picture_string – should be MDString Node – not decided yet.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"> DW_AT_decimal_sign – May be in DIflags with mask (5 distinct inputs), like FlagDSOverPunch, etc<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"> DW_AT_digit_count – unsigned integer, like unsigned DigitCount<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"> DW_AT_decimal_scale – integer, like int DecimalScale<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">I am looking to add this info in DIBasicType class (DebugInfoMetadata.h) and would appreciate advice on above location.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IN">Regrads,<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="color:#2F5597;mso-fareast-language:FR-BE"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="color:#2F5597;mso-fareast-language:FR-BE">Chirag Patel</span></b><span style="color:#2F5597;mso-fareast-language:FR-BE">| Software Engineer<b><br>
RAINCODE</b> Mainframe to .NET</span><span lang="X-NONE" style="mso-fareast-language:FR-BE"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:10.0pt;color:#2F5597;mso-fareast-language:FR-BE">Tel</span></b><span style="font-size:10.0pt;color:#2F5597;mso-fareast-language:FR-BE"> : +91
</span><span lang="EN-IN" style="color:#2F5597;mso-fareast-language:EN-IN">080 41159811</span><span lang="EN-IN" style="font-size:10.0pt;color:#2F5597;mso-fareast-language:FR-BE">
</span><span style="font-size:10.0pt;color:#2F5597;mso-fareast-language:FR-BE">| <b>
Mob</b> : +91 90493 36744<br>
</span><u><span style="color:blue;mso-fareast-language:FR-BE"><a href="http://www.raincodelabs.com/">www.raincodelabs.com</a></span></u><u><span style="mso-fareast-language:FR-BE"><o:p></o:p></span></u></p>
<p class="MsoNormal"><span lang="EN-IN"><o:p> </o:p></span></p>
</div>
</div>
</body>
</html>