<div dir="ltr">On 18 February 2013 23:01, Arnold Schwaighofer <span dir="ltr"><<a href="mailto:aschwaighofer@apple.com" target="_blank">aschwaighofer@apple.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 class="im"><span style="color:rgb(34,34,34)">+  unsigned MaxByteWidth = (TTI->getRegisterBitWidth(</span><span style="color:rgb(34,34,34)">true) / 8)*TTI-></span><span style="color:rgb(34,34,34)">getMaximumUnrollFactor();</span></div>
</blockquote><div><br></div><div style>Excellent, makes sense, thanks!</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<span style="color:rgb(34,34,34)">We already add runtime checks for unidentified objects (you probably know that - just making sure). Do you plan to add more? Are you thinking of bounds within underlying objects?</span></div>
</blockquote><div><br></div><div style>Exactly. I wanted to do that statically on top of the alias analysis, but all the discussions about using AA, TBAA and some new groovy metadata made me leave it for later.</div><div style>
<br></div><div style>I may be able to come up with a simple static range check, for instance, if all accesses are controlled from inside the loop by the induction variable, it might be easy to predict some common simple patterns. But this will definitely be a small subset and we'll have to be very conservative.</div>
<div style><br></div><div style><br></div><div style>Thanks for the review, I'll work on folding the representation and try to avoid multimaps. Once this is in, we can start worrying about range checks, static or dynamic.</div>
<div style><br></div><div style>--renato</div></div></div></div>