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

Michael Spencer via llvm-dev llvm-dev at lists.llvm.org
Wed May 31 17:13:21 PDT 2017


On Wed, May 31, 2017 at 5:06 PM, Zachary Turner <zturner at google.com> wrote:

> Was this any different than the existing cross-dependencies that exist
> between ADT and Support?
>

The difference between ADT and Support is just which directory the headers
are in. system and support were different .a/.so, which would be required
to break the build dependency.

- Michael Spencer


>
> On Wed, May 31, 2017 at 5:04 PM Michael Spencer <bigcheesegs at gmail.com>
> wrote:
>
>> On Fri, May 26, 2017 at 5:47 PM, Zachary Turner via llvm-dev <
>> llvm-dev at lists.llvm.org> 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?
>>>
>>> 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
>>>
>>>
>> 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.
>>
>> - Michael Spencer
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170531/86cfb7f2/attachment.html>


More information about the llvm-dev mailing list