<div dir="ltr"><div class="gmail_extra"><div><div class="gmail_signature">On Fri, May 26, 2017 at 5:47 PM, Zachary Turner via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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><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.<wbr>h"</div><div>#include "llvm/Support/LEB128.h"</div><div>#include "llvm/Support/<wbr>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/<wbr>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="gmail-m_4078018736167879135inbox-inbox-Apple-interchange-newline">Is this something worth putting effort into?  If so, I volunteer.</div><br class="gmail-m_4078018736167879135inbox-inbox-Apple-interchange-newline"></div></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div><div class="gmail_extra">Just a note. Support used to be two separate libraries, support and system. These were merged (7 years ago?) due to the need for and existence of cross dependencies between them. I would be concerned with any split that brought back these issues where adding an include changed which library something needed to be in.</div><div class="gmail_extra"><br></div><div class="gmail_extra">- Michael Spencer<br></div></div>