<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.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>