<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Nelson,<br>
    <br>
    As far as I know, there are only 2 inliners available in LLVM (2.7
    and 2.8 releases):<br>
    <br>
    InlineSimple: inline callsites according to simple analysis
    heuristics<br>
    <br>
    InlneAlways: inline callsites whose callee definitions have the
    __attribute__((alwayeinline)) attribute on.<br>
    <br>
    For an early inliner, if doesn't exist, it should be relatively
    straight forward to write one.<br>
    <br>
    <br>
    Chuck<br>
    <br>
    <br>
    On 10/24/2010 1:23 PM, J Nelson Amaral wrote:
    <blockquote
      cite="mid:AANLkTikocEJBWT1JA2qaPP_a3jOc4KbZNY7uJvT=A5=4@mail.gmail.com"
      type="cite">Duncan:
      <div><br>
      </div>
      <div>I am only superficially familiar with LLVM structure.</div>
      <div><br>
      </div>
      <div>What I am trying to find out is if functions that have a
        single invocation are still found in the code during the
        compilation.</div>
      <div><br>
      </div>
      <div>In Open64 and other compilers, there is an early inlining
        pass that inlines all procedures that have a single invocation
        site. The reasoning is that if there is a single call to a
        procedure, then there is not downside to inlining it.</div>
      <div><br>
      </div>
      <div>Does LLVM usually does that? Or would that be left to
        whatever front-end is being used? <br clear="all">
        <br>
        -- <br>
                Cheers,<br>
        <br>
                        Nelson<br>
        <br>
                   /     <br>
            \     /  /   Jose Nelson Amaral - <a moz-do-not-send="true"
          href="mailto:amaral@cs.ualberta.ca">amaral@cs.ualberta.ca</a><br>
             )   /  (    Professor <br>
            /   /    \   Dept. of Computing Science - University of
        Alberta<br>
           (   /      )  Edmonton, Alberta, Canada, T6G 2E8<br>
            \ O      /   Phone: (780)492-5411      Fax: (780)492-1071<br>
             \      /    <a moz-do-not-send="true"
          href="http://www.cs.ualberta.ca/%7Eamaral">http://www.cs.ualberta.ca/~amaral</a><br>
              `----'<br>
        <br>
      </div>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>