<div dir="ltr"><div dir="ltr">On Fri, 21 Aug 2020 at 16:49, Hal Finkel <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

  
  <div>
    <p>But it's not a property of the functions, as I understand it,
      it's a function of place where the function is referenced. In this
      case, maybe we could consider it a property of the vtable itself,
      and some attribute on the array/global would work?<br></p></div></blockquote><div>I see.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p>This is a first-class IR entity. It seems the opposite of
      fragile.</p></div></blockquote><div>I didn't mean passes could remove them, like metadata. I mean the front-end will have to assume all entries point to actual functions that don't get deleted half-way through (LTO? global analysis?), meaning the PLT entry will have to be taught to some optimisations anyway.</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"><div><p> The interesting question is going to be: do we have a
      wile bunch of other code that generally handles constant
      expressions that needs to learn about this new kind of function
      reference?<br></p></div></blockquote><div>Indeed.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
  </div>

</blockquote></div></div>