summaryrefslogtreecommitdiffstats
path: root/llvm/lib/TableGen/Record.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup dump() functions.Matthias Braun2017-01-281-0/+10
| | | | | | | | | | | | | | | | | | We had various variants of defining dump() functions in LLVM. Normalize them (this should just consistently implement the things discussed in http://lists.llvm.org/pipermail/cfe-dev/2014-January/034323.html For reference: - Public headers should just declare the dump() method but not use LLVM_DUMP_METHOD or #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) - The definition of a dump method should look like this: #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) LLVM_DUMP_METHOD void MyClass::dump() { // print stuff to dbgs()... } #endif llvm-svn: 293359
* TableGen: Some more std::string->StringInit* replacementsMatthias Braun2016-12-051-2/+2
| | | | llvm-svn: 288653
* TableGen: TableGenStringKey is no longer necessary as of r288642Matthias Braun2016-12-051-55/+0
| | | | llvm-svn: 288651
* TableGen: Use range based for; reserve vectors where possibleMatthias Braun2016-12-051-18/+23
| | | | llvm-svn: 288650
* TableGen/Record: Replace std::vector with SmallVector/ArrayRefMatthias Braun2016-12-051-27/+28
| | | | llvm-svn: 288648
* ListInit::convertInitializerTo: avoid foldingset lookup if nothing changedMatthias Braun2016-12-051-4/+13
| | | | llvm-svn: 288647
* TableGen: Use StringInit instead of std::string for DagInit arg namesMatthias Braun2016-12-051-12/+12
| | | | llvm-svn: 288644
* TableGen: Use StringInit instead of std::string for DagInit nameMatthias Braun2016-12-051-8/+8
| | | | llvm-svn: 288643
* TableGen: Use more StringInit instead of StringRefMatthias Braun2016-12-051-17/+10
| | | | | | | | This forces the code to call StringInit::get on the string early and avoids storing duplicates in std::string and sometimes allows pointer comparisons instead of string comparisons. llvm-svn: 288642
* TableGen: Factor out STRCONCAT constructor, add shortcut.Matthias Braun2016-12-051-26/+25
| | | | | | | | Introduce new constructor for STRCONCAT binop with a shortcut that immediately concatenates if the two arguments are StringInits. Makes the QualifyName code more readable and tablegen 2-3% faster. llvm-svn: 288639
* TableGen/Record: Move PointerIntPair to less used field of RecordValMatthias Braun2016-12-051-4/+4
| | | | llvm-svn: 288638
* TableGen: Store Records on a BumpPtrAllocatorMatthias Braun2016-12-041-56/+70
| | | | | | | All these records are internalized and will live until exit. This makes them perfect candidates for a fast BumpPtrAllocator. llvm-svn: 288613
* TableGen: Use StringRef instead of const std::string& in return vals.Matthias Braun2016-12-041-5/+5
| | | | | | | This will allow to switch to a different string storage in an upcoming commit. llvm-svn: 288612
* TableGen: Optimize common string concatenation with SmallStringMatthias Braun2016-12-041-2/+7
| | | | llvm-svn: 288611
* TableGen: Use StringRef instead of const std::string& for parametersMatthias Braun2016-12-041-18/+16
| | | | | | | | This avoid an extra construction of a std::string (and a heap allocation) when the caller only has a StringRef but no std::string at hand. llvm-svn: 288610
* TableGen: Add operator !orMatt Arsenault2016-11-151-0/+3
| | | | llvm-svn: 286936
* Fix some Clang-tidy modernize-use-using and Include What You Use warnings; ↵Eugene Zelenko2016-08-231-13/+10
| | | | | | | | other minor fixes. Differential revision: https://reviews.llvm.org/D23789 llvm-svn: 279535
* [TableGen] Autobrief-ize Record. NFC.Ahmed Bougacha2016-07-141-2/+2
| | | | llvm-svn: 275425
* [TableGen] Cleanup Record comments. NFC.Ahmed Bougacha2016-07-141-65/+1
| | | | | | | LLVM doesn't use exceptions anymore. Also remove the implementation comments. Some of them diverged. llvm-svn: 275424
* TableGen: promote "code" type from syntactic sugar.Tim Northover2016-07-051-0/+25
| | | | | | | It's being immediately converted to a "string", but being able to tell what type the field was originally can be useful in backends. llvm-svn: 274575
* Avoid copies of std::strings and APInt/APFloats where we only read from itBenjamin Kramer2016-06-081-1/+1
| | | | | | | | As suggested by clang-tidy's performance-unnecessary-copy-initialization. This can easily hit lifetime issues, so I audited every change and ran the tests under asan, which came back clean. llvm-svn: 272126
* Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith ↵Yaron Keren2016-01-291-6/+6
| | | | | | | | r259192 post commit comment. clang part in r259232, this is the LLVM part of the patch. llvm-svn: 259240
* [TableGen] Use FoldingSets instead of DenseMaps to unique UnOpInit, ↵Craig Topper2016-01-181-39/+79
| | | | | | BinOpInit and TernOpInit. This remove the memory needed to store the key for the DenseMap. NFC llvm-svn: 258071
* [TableGen] Fix an assert I missed in r258063.Craig Topper2016-01-181-1/+1
| | | | llvm-svn: 258068
* [TableGen] Merge the SuperClass Record and SMRange vector into a single ↵Craig Topper2016-01-181-9/+9
| | | | | | vector. This removes the state needed to manage the extra vector thus reducing the size of the Record class. NFC llvm-svn: 258065
* [TableGen] Allocate the Init pointer array for BitsInit/ListInit after the ↵Craig Topper2016-01-181-8/+14
| | | | | | BitsInit/ListInit object itself. Saves a bit of memory. NFC llvm-svn: 258063
* [TableGen] Use some free space in Init to store the opcode for ↵Craig Topper2016-01-041-4/+4
| | | | | | UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC llvm-svn: 256733
* [TblGen] ArrayRefize TGParser. No functional change intended.Benjamin Kramer2015-10-241-1/+1
| | | | llvm-svn: 251186
* TableGen: Support folding casts from bits to intMatt Arsenault2015-07-311-0/+8
| | | | | | | | | | | | | | | This is to fix an incorrect error when trying to initialize DwarfNumbers with a !cast<int> of a bits initializer. getValuesAsListOfInts("DwarfNumbers") would not see an IntInit and instead the cast, so would give up. It seems likely that this could be generalized to attempt the convertInitializerTo for any type. I'm not really sure why the existing code seems to special case the string cast cases when convertInitializerTo seems like it should generally handle this sort of thing. llvm-svn: 243722
* [TableGen] Change a couple methods to return an ArrayRef instead of a const ↵Craig Topper2015-07-061-1/+1
| | | | | | std::vector reference. NFC llvm-svn: 241430
* [TableGen] Restore the use of the TheInit field in Record to cache the ↵Craig Topper2015-06-241-7/+3
| | | | | | Record's DefInit. I broke this when I fixed memory leaks recently. Remove the DenseMap that mapped Record's to DefInit. llvm-svn: 240524
* [TableGen] Change OpInit::getNumOperands and getOperand to use unsigned ↵Craig Topper2015-06-061-2/+2
| | | | | | integers. NFC llvm-svn: 239210
* [TableGen] Remove trailing whitespace, add space between 'if' and paren, ↵Craig Topper2015-06-061-16/+16
| | | | | | other formatting fixes. NFC llvm-svn: 239209
* [TableGen] Remove unnecessary temporary. NFCCraig Topper2015-06-061-2/+1
| | | | llvm-svn: 239208
* [TableGen] Fold variable declaration/initialization into if condition for a ↵Craig Topper2015-06-061-8/+6
| | | | | | couple short lived variables. NFC llvm-svn: 239207
* [TableGen] Remove unnecessary outer 'if' and merge it's conditions into the ↵Craig Topper2015-06-061-42/+41
| | | | | | inner 'if's. NFC llvm-svn: 239206
* [TableGen] Fold variable declarations with their assignments. NFCCraig Topper2015-06-061-4/+2
| | | | llvm-svn: 239205
* [TableGen] Use range-based for loops. NFCCraig Topper2015-06-041-12/+13
| | | | llvm-svn: 239022
* [TableGen] Merge single prefix bit in RecordVal into PointerIntPair with ↵Craig Topper2015-06-041-5/+5
| | | | | | Name to reduce memory usage. llvm-svn: 239021
* [TableGen] Rename ListInit::getSize to just 'size' to be more consistent.Craig Topper2015-06-021-5/+5
| | | | llvm-svn: 238806
* [TableGen] Use range-based for loops. NFC.Craig Topper2015-06-021-11/+10
| | | | llvm-svn: 238805
* [TableGen] Move a couple virtual methods out of line so vtable anchors can ↵Craig Topper2015-06-011-3/+7
| | | | | | be removed. NFC llvm-svn: 238727
* [TableGen] Merge RecTy::typeIsConvertibleTo and RecTy::baseClassOf. NFCCraig Topper2015-05-301-16/+14
| | | | | | typeIsConvertibleTo was just calling baseClassOf(this) on the argument passed to it, but there weren't different signatures for baseClassOf so passing 'this' didn't really do anything interesting. typeIsConvertibleTo could have just been a non-virtual method in RecTy. But since that would be kind of a silly method, I instead re-distributed the logic from baseClassOf into typeIsConvertibleTo. llvm-svn: 238648
* [TableGen] Remove all the variations of RecTy::convertValue and just handle ↵Craig Topper2015-05-301-173/+217
| | | | | | the conversions in convertInitializerTo directly. This saves a bunch of vtable entries. NFC llvm-svn: 238646
* [TableGen] Remove convertValue functions for UnOpInit, BinOpInit, and ↵Craig Topper2015-05-291-48/+0
| | | | | | | | TernOpInit as they weren't able to be called. I don't think converting the inputs to the Ops was the right behavior anyway. llvm-svn: 238543
* [TableGen] Use DefInit::getAsString instead of getDef()->getName(). NFCCraig Topper2015-05-281-1/+1
| | | | llvm-svn: 238399
* [TableGen] Don't convert types to strings to query what they are. Just use 'isa'Craig Topper2015-05-281-2/+2
| | | | llvm-svn: 238398
* [TableGen] Make some variable names consistent with their type names and ↵Craig Topper2015-05-201-23/+23
| | | | | | just generally consistent across all of the overloads. llvm-svn: 237775
* [TableGen] Fix a memory leak.Craig Topper2015-05-201-2/+2
| | | | llvm-svn: 237774
* [TableGen] Change 'car' to 'head' and 'cdr' to 'tail' in assert comments. ↵Craig Topper2015-05-161-2/+2
| | | | | | These were the old names for these operations long ago. NFC llvm-svn: 237514
OpenPOWER on IntegriCloud