]> granicus.if.org Git - llvm/commitdiff
[TableGen] Use a SmallVector for Record::Values to avoid debug iterators
authorReid Kleckner <rnk@google.com>
Thu, 30 Jun 2016 23:04:07 +0000 (23:04 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 30 Jun 2016 23:04:07 +0000 (23:04 +0000)
Debug iterators are valuable so we don't want to turn them off
completely. However, llvm-tblgen is critical to build speed, so we can
skip them here.

Regenerating X86GenSubtargetInfo.inc in a clang-cl self-host debug build
now takes 39s instead of 1m29s.

Helps PR28222

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274288 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/TableGen/Record.h

index 9140b3a9c5ee892a7d28011ed77b2e6f0520ab29..43b1af086d24a170e8fa11d1c3c774a5c6c45959 100644 (file)
@@ -1167,9 +1167,9 @@ class Record {
   // Location where record was instantiated, followed by the location of
   // multiclass prototypes used.
   SmallVector<SMLoc, 4> Locs;
-  std::vector<Init *> TemplateArgs;
-  std::vector<RecordVal> Values;
-  std::vector<std::pair<Record *, SMRange>> SuperClasses;
+  SmallVector<Init *, 0> TemplateArgs;
+  SmallVector<RecordVal, 0> Values;
+  SmallVector<std::pair<Record *, SMRange>, 0> SuperClasses;
 
   // Tracks Record instances. Not owned by Record.
   RecordKeeper &TrackedRecords;