[llvm-dev] Should we split llvm Support and ADT?

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Fri May 26 17:56:10 PDT 2017



On 05/26/2017 07:47 PM, Zachary Turner via llvm-dev wrote:
> Changing a header file somewhere and having to spend 10 minutes 
> waiting for a build leads to a lot of wasted developer time.
>
> 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?

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

  -Hal

>
> From what I can gather, Tablegen currently depends on these headers 
> and all of their transitive dependencies.
>
> #include "llvm/Support/Casting.h"
> #include "llvm/Support/CommandLine.h"
> #include "llvm/Support/Compiler.h"
> #include "llvm/Support/DataTypes.h"
> #include "llvm/Support/Debug.h"
> #include "llvm/Support/Error.h"
> #include "llvm/Support/ErrorHandling.h"
> #include "llvm/Support/Format.h"
> #include "llvm/Support/FormattedStream.h"
> #include "llvm/Support/LEB128.h"
> #include "llvm/Support/LowLevelTypeImpl.h"
> #include "llvm/Support/ManagedStatic.h"
> #include "llvm/Support/MathExtras.h"
> #include "llvm/Support/MemoryBuffer.h"
> #include "llvm/Support/PrettyStackTrace.h"
> #include "llvm/Support/Regex.h"
> #include "llvm/Support/SMLoc.h"
> #include "llvm/Support/ScopedPrinter.h"
> #include "llvm/Support/Signals.h"
> #include "llvm/Support/SourceMgr.h"
> #include "llvm/Support/raw_ostream.h"
>
> #include "llvm/ADT/APInt.h"
> #include "llvm/ADT/ArrayRef.h"
> #include "llvm/ADT/BitVector.h"
> #include "llvm/ADT/CachedHashString.h"
> #include "llvm/ADT/DenseSet.h"
> #include "llvm/ADT/IndexedMap.h"
> #include "llvm/ADT/IntEqClasses.h"
> #include "llvm/ADT/MapVector.h"
> #include "llvm/ADT/Optional.h"
> #include "llvm/ADT/PointerUnion.h"
> #include "llvm/ADT/STLExtras.h"
> #include "llvm/ADT/SetVector.h"
> #include "llvm/ADT/SmallPtrSet.h"
> #include "llvm/ADT/SmallSet.h"
> #include "llvm/ADT/SmallVector.h"
> #include "llvm/ADT/SparseBitVector.h"
> #include "llvm/ADT/Statistic.h"
> #include "llvm/ADT/StringExtras.h"
> #include "llvm/ADT/StringMap.h"
> #include "llvm/ADT/StringRef.h"
> #include "llvm/ADT/StringSet.h"
> #include "llvm/ADT/StringSwitch.h"
> #include "llvm/ADT/TinyPtrVector.h"
> #include "llvm/ADT/Twine.h"
>
>
> Is this something worth putting effort into?  If so, I volunteer.
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170526/9871e599/attachment.html>


More information about the llvm-dev mailing list