<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 31, 2015 at 3:53 PM, Philip Reames <span dir="ltr"><<a href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    Quoting from the google doc: <span style="font-size:14.666666666666666px;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">"If
      we don’t know definition of some function, we assume that it will
      not call @llvm.invariant.group.barrier().</span>"<br>
    This part really really bugs me.  We generally try to assume minimal
    knowledge of external functions (i.e. they can do anything) and this
    assumption would invert that.  Is there a way we can rephrase the
    proposal which avoids the need for this?  I'm not quite clear what
    this assumption buys us.<br><br></div></blockquote><div>This is because without it the optimization will be useless. For example:</div><div>A* a = new A;</div><div>a->foo(); //outline virtual</div><div>a->foo();</div><div><br></div><div>If we will assume that foo calls @llvm.invariant.barrier, then we will not be able to optimize the second call. </div><div><br></div><div><br></div><div>Piotr</div></div></div></div>