<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 05/26/2017 07:47 PM, Zachary Turner
      via llvm-dev wrote:<br>
    </div>
    <blockquote
cite="mid:CAAErz9hZbs7tzGr7ZgxiBb1NvTfh22HPsfg=_8P8k8FAxthJtw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div dir="ltr">Changing a header file somewhere and having to
        spend 10 minutes waiting for a build leads to a lot of wasted
        developer time.
        <div><br>
        </div>
        <div>The real culprit here is tablegen.  Can we split support
          and ADT into two - the parts that tablegen depends on and the
          parts that it doesn't?</div>
      </div>
    </blockquote>
    <br>
    What's the actual problem here? Is it that TableGen regenerates
    different files and so we then need to rebuild all dependencies of
    those files? Maybe we should use a diff-and-update approach (I
    thought, however, that we already did that).<br>
    <br>
     -Hal<br>
    <br>
    <blockquote
cite="mid:CAAErz9hZbs7tzGr7ZgxiBb1NvTfh22HPsfg=_8P8k8FAxthJtw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>From what I can gather, Tablegen currently depends on these
          headers and all of their transitive dependencies.</div>
        <div><br>
        </div>
        <div>
          <div>#include "llvm/Support/Casting.h"</div>
          <div>#include "llvm/Support/CommandLine.h"</div>
          <div>#include "llvm/Support/Compiler.h"</div>
          <div>#include "llvm/Support/DataTypes.h"</div>
          <div>#include "llvm/Support/Debug.h"</div>
          <div>#include "llvm/Support/Error.h"</div>
          <div>#include "llvm/Support/ErrorHandling.h"</div>
          <div>#include "llvm/Support/Format.h"</div>
          <div>#include "llvm/Support/FormattedStream.h"</div>
          <div>#include "llvm/Support/LEB128.h"</div>
          <div>#include "llvm/Support/LowLevelTypeImpl.h"</div>
          <div>#include "llvm/Support/ManagedStatic.h"</div>
          <div>#include "llvm/Support/MathExtras.h"</div>
          <div>#include "llvm/Support/MemoryBuffer.h"</div>
          <div>#include "llvm/Support/PrettyStackTrace.h"</div>
          <div>#include "llvm/Support/Regex.h"</div>
          <div>#include "llvm/Support/SMLoc.h"</div>
          <div>#include "llvm/Support/ScopedPrinter.h"</div>
          <div>#include "llvm/Support/Signals.h"</div>
          <div>#include "llvm/Support/SourceMgr.h"</div>
          <div>#include "llvm/Support/raw_ostream.h"</div>
          <div><br>
          </div>
          <div>#include "llvm/ADT/APInt.h"</div>
          <div>#include "llvm/ADT/ArrayRef.h"</div>
          <div>#include "llvm/ADT/BitVector.h"</div>
          <div>#include "llvm/ADT/CachedHashString.h"</div>
          <div>#include "llvm/ADT/DenseSet.h"</div>
          <div>#include "llvm/ADT/IndexedMap.h"</div>
          <div>#include "llvm/ADT/IntEqClasses.h"</div>
          <div>#include "llvm/ADT/MapVector.h"</div>
          <div>#include "llvm/ADT/Optional.h"</div>
          <div>#include "llvm/ADT/PointerUnion.h"</div>
          <div>#include "llvm/ADT/STLExtras.h"</div>
          <div>#include "llvm/ADT/SetVector.h"</div>
          <div>#include "llvm/ADT/SmallPtrSet.h"</div>
          <div>#include "llvm/ADT/SmallSet.h"</div>
          <div>#include "llvm/ADT/SmallVector.h"</div>
          <div>#include "llvm/ADT/SparseBitVector.h"</div>
          <div>#include "llvm/ADT/Statistic.h"</div>
          <div>#include "llvm/ADT/StringExtras.h"</div>
          <div>#include "llvm/ADT/StringMap.h"</div>
          <div>#include "llvm/ADT/StringRef.h"</div>
          <div>#include "llvm/ADT/StringSet.h"</div>
          <div>#include "llvm/ADT/StringSwitch.h"</div>
          <div>#include "llvm/ADT/TinyPtrVector.h"</div>
          <div>#include "llvm/ADT/Twine.h"</div>
        </div>
        <div><br>
        </div>
        <div>
          <div><br class="inbox-inbox-Apple-interchange-newline">
            Is this something worth putting effort into?  If so, I
            volunteer.</div>
          <br class="inbox-inbox-Apple-interchange-newline">
        </div>
      </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>