<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><br>
</p>
<div class="moz-cite-prefix">On 05/26/2017 07:59 PM, Zachary Turner
wrote:<br>
</div>
<blockquote
cite="mid:CAAErz9jH2VGdkgantDnssUbgngPTY2mmjokKTRTDaTkx5UA66g@mail.gmail.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">It's that TableGen depends on Support, so if you
change one file in support, support gets recompiled into a new
static archive, which triggers a rerun of tablegen on all the
tablegen inputs, which is extremely slow.</div>
</blockquote>
<br>
I thought that we had a "build an optimized tablegen even in debug
mode" setting to work around this problem. Would that avoid this
problem?<br>
<br>
-Hal<br>
<br>
<blockquote
cite="mid:CAAErz9jH2VGdkgantDnssUbgngPTY2mmjokKTRTDaTkx5UA66g@mail.gmail.com"
type="cite"><br>
<div class="gmail_quote">
<div dir="ltr">On Fri, May 26, 2017 at 5:56 PM Hal Finkel <<a
moz-do-not-send="true" href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<p><br>
</p>
<br>
<div class="m_-895338599256642649moz-cite-prefix">On
05/26/2017 07:47 PM, Zachary Turner via llvm-dev wrote:<br>
</div>
<blockquote type="cite">
<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>
</div>
<div bgcolor="#FFFFFF" text="#000000"> 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>
</div>
<div bgcolor="#FFFFFF" text="#000000">
<blockquote 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="m_-895338599256642649inbox-inbox-Apple-interchange-newline">
Is this something worth putting effort into? If so,
I volunteer.</div>
<br
class="m_-895338599256642649inbox-inbox-Apple-interchange-newline">
</div>
</div>
<br>
<fieldset
class="m_-895338599256642649mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
</div>
<div bgcolor="#FFFFFF" text="#000000">
<blockquote type="cite">
<pre>_______________________________________________
LLVM Developers mailing list
<a moz-do-not-send="true" class="m_-895338599256642649moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a moz-do-not-send="true" class="m_-895338599256642649moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
</div>
<div bgcolor="#FFFFFF" text="#000000"> <br>
<pre class="m_-895338599256642649moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</div>
</blockquote>
</div>
</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>