<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Jun 19, 2015 at 3:32 PM Hal Finkel <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">----- Original Message -----<br>
> From: "Stephen Cross" <<a href="mailto:scross@scross.co.uk" target="_blank">scross@scross.co.uk</a>><br>
> To: <a href="mailto:llvmdev@cs.uiuc.edu" target="_blank">llvmdev@cs.uiuc.edu</a><br>
> Sent: Friday, June 19, 2015 5:19:33 PM<br>
> Subject: [LLVMdev] Could metadata ever be mandatory for correctness in LLVM   IR?<br>
><br>
> Hi everyone,<br>
><br>
> Currently it looks like metadata is used in LLVM IR essentially as an<br>
> 'optional extra', in that any pass is allowed to remove metadata<br>
> (though preserving metadata is useful) and the program should remain<br>
> valid. In other words the metadata only communicates information<br>
> about<br>
> code quality or associated information rather than issues relevant to<br>
> correctness.<br>
><br>
> First question: Is this is a long term design intention OR something<br>
> that just currently happens to be true?<br>
<br>
That is intentional.<br>
<br>
><br>
> The context for this is that I'm considering how to represent ABI<br>
> information in a language-agnostic way in LLVM IR. I've seen/heard<br>
> some suggestions about using metadata to represent ABI information<br>
> (e.g. to say this 'i32' is actually an 'int'), but it does seem like<br>
> metadata is not intended for this kind of use case since removing the<br>
> metadata would affect the correctness of the lowering in the backend.<br>
<br>
We might be able to make different guarantees for module-level metadata, but I'm not certain.<br>
<br></blockquote><div><br></div><div>I'd definitely be against it. If we want to make it guaranteed then we should just make it a part of the non-metadata IR.</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
><br>
> Second question: Given that context, would it be reasonable to say<br>
> that metadata would not be considered an appropriate mechanism for<br>
> communicating ABI information?<br>
<br>
That's right. Is there a reason you can't use function attributes for the ABI information?<br>
<br>
 -Hal<br>
<br>
><br>
> Thanks,<br>
> Stephen<br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
<br>
--<br>
Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div></div>