<html>
    <head>
      <base href="https://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 --- - llvm-tblgen is still too slow in the default debug build configuration"
   href="https://llvm.org/bugs/show_bug.cgi?id=28222">28222</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>llvm-tblgen is still too slow in the default debug build configuration
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

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

        <tr>
          <th>OS</th>
          <td>Windows NT
          </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>Target Description Classes
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>rnk@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>cbieneman@apple.com, llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I'm filing this bug because I bothered to build LLVM in debug mode on Windows,
and it's ridiculously slow. This has been a persistent problem across LLVM's
entire history, and many people have attempted to solve it, but it still
persists. Currently we have LLVM_OPTIMIZED_TABLEGEN, but this is off by default
and doesn't play well with ninja.

I think we need should solve this by building lib/Support in both release and
debug configurations when we detect that the user is building in a debug
configuration. The release version of support would be linked into llvm-tblgen.
We would also optimize the code in lib/TableGen, which changes infrequently and
doesn't need to be debugged very often. We would also disable things like debug
iterator checks to make these libraries faster.

We'd probably disable this complexity in an "expensive checks" build. We also
don't want to do this when the user is already doing a release build, since it
increases the total compilation work.</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>