<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Long execution time for large IR module"
   href="http://llvm.org/bugs/show_bug.cgi?id=22630">22630</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Long execution time for large IR module
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.5
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Global Analyses
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>djones@xtreme-eda.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=13903" name="attach_13903" title="Timing report">attachment 13903</a> <a href="attachment.cgi?id=13903&action=edit" title="Timing report">[details]</a></span>
Timing report

I have a rather large (71MB) IR assembly file (includes debug metadata) that
takes 100 seconds to optimize and generate x86-64 code for. (Host is AMD K10
running at 2.7-3.3GHz.)

If I run:

/tools/llvm/3.5.1dbg/bin/llc -O2  LMtb_ethernet.ll -o opt.o -time-passes

the pass timing report (attached) accounts for about 40 seconds of run time,
even though the command takes about 100 seconds.

In comparison, clang takes only 4-6 seconds to compile my largest C++ file,
which results in 61MB of LLVM IR assembly (again, including debug).

I'm not sure what's actually taking up the time. If I run opt instead of llc,
opt will finish in about 40 seconds.  Is this a case of LLVM backend behaving
reasonably on very large output, or is there something pathological in either
my code or LLVM that one of us can fix?

It should be noted that the file I am trying to compile is by no means
considered "large" in my industry.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>