<div dir="ltr">"then gcc does the right thing in both cases."<div>There is no way it would ever affect execution semantics except through deletion, so ...</div><div><br></div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Aug 19, 2017 at 10:54 AM, Ivan A. Kosarev <span dir="ltr"><<a href="mailto:ikosarev@accesssoftek.com" target="_blank">ikosarev@accesssoftek.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Can you share the snippets you use?<br>
<br>
Reloading x->i may affect performance, but not necessarily execution semantics. </blockquote><div><br></div><div>Sure</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">So if it is not required to reload the value (what I think is true), then gcc does the right thing in both cases.</blockquote><div>I'm unsure what you are trying to say here :)</div><div>The whole point of TBAA is about whether you are eliminate the loads/stores.  So yes, gcc is always going to do the right thing, if you believe it's okay to remove the load/stores.</div><div><br></div><div>That's equivalent to saying "as long as it does nothing or something, it was okay".</div><div>:)</div><div><br></div><div><br></div><div><br></div></div></div></div></div>