<div dir="ltr">On Wed, Mar 27, 2013 at 11:52 PM, Lang Hames <span dir="ltr"><<a href="mailto:lhames@gmail.com" target="_blank" class="cremed">lhames@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Hi Chandler, Dan,</div><div class="im"><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">When alignment is zero, the lang ref says that *no* alignment<br>


assumptions can be made. This is the exact opposite of the internal API<br>
contracts of the DAG where alignment 0 indicates that the alignment can<br>
be made to be anything desired.<br></blockquote><div><br></div></div><div>I had occasion to circle back to this recently, and I wanted to double-check this part of the analysis. Is this actually an internal contract, and expected behavior? Or do things just go haywire when we feed in a zero alignment? On a local LLVM copy, I replaced your fix with an assert on zero-alignment, and added similar asserts to getMemcpyLoadsAndStores (and friends), but wasn't able to trigger them with anything in the test suite.</div>

<div><br></div><div>If it's not an internal contract, but just the DAG going haywire on Align==0, I'd like to keep your fix in place, and commit the asserts that I've added to getMemcpyLoadsAndStores and friends.</div>
</div></div></div></blockquote><div><br></div><div style>My fix definitely was that the DAG went haywire on align == 0.</div><div style><br></div><div style>I'm not sure what you mean by 'internal contract'. The LangRef sets out the meaning of align==0 for memset and friends very explicitly. I'm OK if you want to change the langref to say something else, but it's not about adding asserts, it's about changing the langref, adding autoupgrade functionality, and teaching the verifier about this first.... then you can add asserts. =D</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div><br></div><div>Cheers,</div><div>Lang.</div><div><br></div></div></div></div>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" class="cremed">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div></div>