<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Jul 1, 2013, at 11:50 AM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="gmail_extra"><div class="gmail_quote"><br class="Apple-interchange-newline">On Mon, Jul 1, 2013 at 11:45 AM, Preston Briggs<span class="Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:preston.briggs@gmail.com" target="_blank" class="cremed">preston.briggs@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">I try to take advantage of GEPs if they exist and if they are the same type.</blockquote></div><br>But the type of GEPs gives you no information. I don't know how you can use them in any real way.... I can go read the code again to try to give examples if needed.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I think the confusion is that fundamentally, GEPs are just a shorthand for addressing arithmetic. They impose no interesting contraints above or beyond a sequence of add and multiply instructions. You can't conclude anything special from them other than the offset that results from this math. In particular they don't convey any actual constraints on the structure of memory being addressed.</div></div></blockquote><br></div><div>Well, inbounds GEPs provide a stronger constraint than SCEV by telling you that every intermediate GEP index is still in-bounds. But that still doesn’t tell you anything about whether a multi-dimensional array is over-indexed.</div><div><br></div><div>-Andy</div><br></body></html>