<div dir="ltr"><div dir="ltr">I would think that in a language like C, the role of the optimizer should be to do optimizations that are difficult or impossible or time consuming for the programmer.<div>My concern is that TBAA has a trade-off in terms of the complexity of the language for the programmer so I'd like to know if the tradeoff is really worth it. </div><div>BTW: the programmer based hoisting does not depend on the type of bound being different from the types off arr - so it is more robust. </div><div><br></div><div><br></div><div>vy</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 18, 2021 at 10:33 AM Richard Kenner <<a href="mailto:kenner@adacore.com">kenner@adacore.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> The programmer can get this with a simple change, no?<br>
<br>
Sure.  The programmer can do all sorts of optimizations themselves, in<br>
fact almost all of them.  But the purpose of an optimizer is to do these<br>
things so that the programmer doesn't have to do that.<br>
</blockquote></div></div>