[llvm] r274288 - [TableGen] Use a SmallVector for Record::Values to avoid debug iterators
Reid Kleckner via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 30 16:04:07 PDT 2016
Author: rnk
Date: Thu Jun 30 18:04:07 2016
New Revision: 274288
URL: http://llvm.org/viewvc/llvm-project?rev=274288&view=rev
Log:
[TableGen] Use a SmallVector for Record::Values to avoid debug iterators
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
Modified:
llvm/trunk/include/llvm/TableGen/Record.h
Modified: llvm/trunk/include/llvm/TableGen/Record.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/TableGen/Record.h?rev=274288&r1=274287&r2=274288&view=diff
==============================================================================
--- llvm/trunk/include/llvm/TableGen/Record.h (original)
+++ llvm/trunk/include/llvm/TableGen/Record.h Thu Jun 30 18:04:07 2016
@@ -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;
More information about the llvm-commits
mailing list