<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 18, 2013 at 3:08 PM, Sean Silva <span dir="ltr"><<a href="mailto:silvas@purdue.edu" target="_blank">silvas@purdue.edu</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"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Tue, Jun 18, 2013 at 2:06 PM, Eli Bendersky <span dir="ltr"><<a href="mailto:eliben@google.com" target="_blank">eliben@google.com</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"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div>On Tue, Jun 18, 2013 at 12:03 PM, Sean Silva <span dir="ltr"><<a href="mailto:silvas@purdue.edu" target="_blank">silvas@purdue.edu</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">Instead of a blacklist, why not a whitelist? Given the size of LangRef, you're bound to leave something out of your blacklist that needs to be there (also, future additions to LLVM IR will need to be added to the blacklist; are you sure you can catch *all* of them?). A whitelist seems much less prone to breakage or unexpected behavior.<span><font color="#888888"><div>



<div><br></div></div></font></span></div></blockquote><div><br></div></div><div>Hi Sean,</div><div><br></div><div>Which blacklist are you referring to? In all places where we specifically allow or disallow certain constructs (such as specific instructions, intrinsics, linkage modes and so on) we use a whitelisting strategy.</div>

<span><font color="#888888">
<div><br></div></font></span></div></div></div></blockquote><div><br></div></div></div><div>What I'm saying is that the approach to defining the format seems to be basically "the format is LLVM IR, except ...". The "except ..." is effectively a blacklist. You are starting with LLVM IR and then removing (i.e. blacklisting certain aspects)</div>
</div></div></div></blockquote><div><br></div><div>I just think it's a more useful discussion format for people knowledgeable about LLVM. Dumping a huge LangRef-like reference manual on people is less discussion-friendly :-) As I've mentioned, in reality (= code), the approach is whitelisting so we shouldn't miss things that get added in future LLVMs.</div>
<div><br></div><div>Eli</div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div></div></div></div>