<div dir="ltr">I took a look at the code a bit more, and it looks like there are no users of EmitIntValue with an explicit 8-byte size, although plenty use some other mechanism to specify the size, which could clearly be 8 bytes (e.g. when emitting DW_FORM_data8 data, or address sizes). As far as I can tell, there is no DWARF64 writing support anywhere in LLVM, so the obvious use-case for writing a literal 64-bit value is not there either. Type signatures, along with other DWARF DIEs are written with an indirectly-specified size. I think the fact that this can be a value of 8 probably means that this is safe, but I'm uncertain.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 20 March 2018 at 18:49, <span dir="ltr"><<a href="mailto:paul.robinson@sony.com" target="_blank">paul.robinson@sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div link="blue" vlink="purple" lang="EN-US">
<div class="m_-7109131203028343994WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">DWARF already needs to emit 64-bit values, being the type-unit hashes. How is that being done? (If it's going directly to the streamer, then we're already
assuming all assemblers are okay with what the streamer does, and adding an AsmPrinter helper seems very reasonable.)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">--paulr<u></u><u></u></span></p>
<p class="MsoNormal"><a name="m_-7109131203028343994__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></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:<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@<wbr>lists.llvm.org</a>]
<b>On Behalf Of </b>James Henderson via llvm-dev<br>
<b>Sent:</b> Friday, March 09, 2018 7:44 AM<br>
<b>To:</b> llvm-dev<br>
<b>Subject:</b> [llvm-dev] Why is there no EmitInt64 in AsmPrinter?<u></u><u></u></span></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi all,<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The AsmPrinter class supports functions like EmitInt8, EmitInt16, and EmitInt32 for writing a 1/2/4 byte directive to the assembly. Each of these calls the MCStreamer::EmitIntValue method with the corresponding
size. For some reason, there is no EmitInt64, and I was wondering if there was a fundamental reason why? The EmitIntValue function appears to support 8-byte inputs.<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I dug into this a bit more and found a commit way back in 2010 (r100296) that removed the "EmitInt64" equivalent, with no explanation (presumably it was unused).<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I'd find this function quite helpful - I'm currently working on extending the DwarfGenerator unit-test helper class to support debug line, and I'd like to be able to write 8 byte values (e.g. to reflect DWARF64
lengths). I could trivially reinstate the function, but if there's a good reason not to, it would be good to know before I go to the effort of creating a review for it.<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Thanks for any help.<u></u><u></u></p>
</div>
<p class="MsoNormal">James<u></u><u></u></p>
</div>
</div></div></div>
</div>
</div>
</blockquote></div><br></div>