<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 10/26/2017 10:56 PM, Chris Lattner
      via llvm-dev wrote:<br>
    </div>
    <blockquote
      cite="mid:AA022A6C-756B-40AB-BB89-50199CBD5502@nondot.org"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <br class="">
      <div>
        <blockquote type="cite" class="">
          <div class="">On Oct 26, 2017, at 8:14 PM, Chandler Carruth
            via llvm-dev <<a moz-do-not-send="true"
              href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>>
            wrote:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <div style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; text-align:
              start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px;" class=""><br
                class="Apple-interchange-newline">
              One alternative that seems appealing but doesn't actually
              help would be to make `TargetLibraryInfo` ignore internal
              functions. That is how the C++ spec seems to handle this
              for example (C library function names are reserved only
              when they have linkage). But this doesn't work well for
              LLVM because we want to be able to LTO an internalized C
              library. So I think we need the rule for LLVM function
              names to not rely on linkage here.</div>
          </div>
        </blockquote>
        <br class="">
      </div>
      <div>Oh sorry, (almost) TLDR I didn’t get to this part.  I don’t
        see how this is applicable.  If you’re statically linking in a
        libc, I think it is fine to forgo the optimizations
        that TargetLibraryInfo is all about.</div>
      <div><br class="">
      </div>
      <div>If these transformations are important to use in this case,
        we should invent a new attribute, and the thing that turns libc
        symbols into internal ones should add the attribute to the (now
        internal) libc symbols.</div>
    </blockquote>
    <br>
    I'm not sure; some of the transformations are somewhat special
    (e.g., based on mathematical properties, or things like printf ->
    puts translation). LTO alone certainly won't give you those kinds of
    things via normal IPA, and I doubt we want attributes for all of
    them. Also, having LTO essentially disable optimizations isn't good
    either.<br>
    <br>
     -Hal<br>
    <br>
    <blockquote
      cite="mid:AA022A6C-756B-40AB-BB89-50199CBD5502@nondot.org"
      type="cite">
      <div><br class="">
      </div>
      <div>-Chris</div>
      <div><br class="">
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>