<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 13, 2016 at 2:52 PM, Keno Fischer via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'd like to revive this thread again, because the same problematic has come up again. Originally I solved this problem by asking llvm for the AllocSize (i.e. the size including padding), which solves the fp80 case nicely, but e.g. also gives 32 for {i8, i8, i8}.</div></blockquote><div><br></div><div>Not sure I follow - why would the allocsize of {i8, i8, i8} be 32? An array of them would presumably have elements that are 3 bytes, not 4?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"> For now I think the only thing I can do is make the verifier accept either size, but I would like to discuss whether we can represent the difference in IR such that we can tighten the check.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 3, 2015 at 9:16 AM, Jonas Maebe via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><br>
Adrian Prantl via llvm-dev wrote on Mon, 02 Nov 2015:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Looking at the code in clang CGDebugInfo just passes through the width of the type as it is described by the TypeInfo, which in turn is defined by the Target. At the moment I do not understand why an x86_fp80 is reported to be 128 bits wide.<br>
</blockquote>
<br></span>
The x86-64 and Darwin/i386 ABI define the size of the 80 bits extended type in memory as 16 bytes. In all other i386 ABIs, it's defined as 12 bytes. Delphi and, for compatibility reasons, the Free Pascal Compiler use 10 bytes (although FPC also has a "cextended" type that follows the official ABI for the platform). In FPC we use a [10 x i8] for all memory representations of the non-ABI 80 bits extended type.<br>
<br>
So ideally, the bitsize of the type should be specifiable separately from the ABI/TypeInfo, as there may be multiple in the code.<span><font color="#888888"><br>
<br>
<br>
Jonas</font></span><div><div><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></div>