aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/TableGen
AgeCommit message (Collapse)AuthorFilesLines
2016-08-23Fix some Clang-tidy modernize-use-using and Include What You Use warnings; ↵Eugene Zelenko3-33/+34
other minor fixes. Differential revision: https://reviews.llvm.org/D23789 llvm-svn: 279535
2016-08-17Replace a few more "fall through" comments with LLVM_FALLTHROUGHJustin Bogner1-1/+1
Follow up to r278902. I had missed "fall through", with a space. llvm-svn: 278970
2016-08-17Fix a use of LLVM_FALLTHROUGH that wasn't even in a switch.Justin Bogner1-1/+0
I was over-aggressive in my conversions from comments to the fallthrough attribute. llvm-svn: 278903
2016-08-17Replace "fallthrough" comments with LLVM_FALLTHROUGHJustin Bogner2-1/+2
This is a mechanical change of comments in switches like fallthrough, fall-through, or fall-thru to use the LLVM_FALLTHROUGH macro instead. llvm-svn: 278902
2016-07-14[TableGen] Autobrief-ize Record. NFC.Ahmed Bougacha1-2/+2
llvm-svn: 275425
2016-07-14[TableGen] Cleanup Record comments. NFC.Ahmed Bougacha1-65/+1
LLVM doesn't use exceptions anymore. Also remove the implementation comments. Some of them diverged. llvm-svn: 275424
2016-07-05TableGen: promote "code" type from syntactic sugar.Tim Northover2-2/+27
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
2016-06-08Avoid copies of std::strings and APInt/APFloats where we only read from itBenjamin Kramer1-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
2016-04-18[NFC] Header cleanupMehdi Amini1-2/+0
Removed some unused headers, replaced some headers with forward class declarations. Found using simple scripts like this one: clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap' Patch by Eugene Kosov <claprix@yandex.ru> Differential Revision: http://reviews.llvm.org/D19219 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266595
2016-04-16Update and fix LLVM_ENABLE_MODULES:Richard Smith1-1/+0
1) We need to add this flag prior to adding any other, in case the user has specified a -fmodule-cache-path= flag in their custom CXXFLAGS. Such a flag causes -Werror builds to fail, and thus all config checks fail, until we add the corresponding -fmodules flag. The modules selfhost bot does this, for instance. 2) Delete module maps that were putting .cpp files into modules. 3) Enable -fmodules-local-submodule-visibility, to get proper module visibility rules applied across submodules of the same module. Disable -fmodules for C builds, since that flag is not available there. llvm-svn: 266502
2016-02-26[TableGen] Fix typos in comments. NFCCraig Topper1-2/+2
llvm-svn: 261984
2016-01-29Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith ↵Yaron Keren2-7/+7
r259192 post commit comment. clang part in r259232, this is the LLVM part of the patch. llvm-svn: 259240
2016-01-26Remove autoconf supportChris Bieneman1-14/+0
Summary: This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html "I felt a great disturbance in the [build system], as if millions of [makefiles] suddenly cried out in terror and were suddenly silenced. I fear something [amazing] has happened." - Obi Wan Kenobi Reviewers: chandlerc, grosbach, bob.wilson, tstellarAMD, echristo, whitequark Subscribers: chfast, simoncook, emaste, jholewinski, tberghammer, jfb, danalbert, srhines, arsenm, dschuff, jyknight, dsanders, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D16471 llvm-svn: 258861
2016-01-18[TableGen] Use FoldingSets instead of DenseMaps to unique UnOpInit, ↵Craig Topper1-39/+79
BinOpInit and TernOpInit. This remove the memory needed to store the key for the DenseMap. NFC llvm-svn: 258071
2016-01-18[TableGen] Fix an assert I missed in r258063.Craig Topper1-1/+1
llvm-svn: 258068
2016-01-18[TableGen] Merge the SuperClass Record and SMRange vector into a single ↵Craig Topper3-19/+18
vector. This removes the state needed to manage the extra vector thus reducing the size of the Record class. NFC llvm-svn: 258065
2016-01-18[TableGen] Allocate the Init pointer array for BitsInit/ListInit after the ↵Craig Topper1-8/+14
BitsInit/ListInit object itself. Saves a bit of memory. NFC llvm-svn: 258063
2016-01-04[TableGen] Use some free space in Init to store the opcode for ↵Craig Topper1-4/+4
UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC llvm-svn: 256733
2016-01-04[TableGen] Change TGParser::SetValue to take an ArrayRef instead of ↵Craig Topper2-15/+10
std::vector reference. Use None in many places where a default constructed vector was being passed. NFC llvm-svn: 256726
2016-01-04[TableGen] Fix a bug that caused the wrong name for a record built from a ↵Craig Topper2-7/+12
multiclass containing a defm called NAME that references another multiclass that contains a defm that uses NAME concatenated with other strings. It would end up doing the concatenations from the second multiclass twice. This occured because SetValue detected a self assignment when trying to set the value of NAME to a VarInit called NAME. NAME is special here and it will get cleaned up later. So add a flag to suppress the self assignment check for this case. Strangely the self-assignment error was returning false indicating it wasn't an error, but it wasn't doing the right thing. So this also changes it to report an error. This fixes the names of some AVX512 FMA instructions that showed this double expansion. llvm-svn: 256725
2015-10-24[TblGen] ArrayRefize TGParser. No functional change intended.Benjamin Kramer3-28/+20
llvm-svn: 251186
2015-07-31TableGen: Support folding casts from bits to intMatt Arsenault1-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
2015-07-27[TableGen] Emit the correct error message.Davide Italiano1-1/+1
llvm-svn: 243284
2015-07-06[TableGen] Change a couple methods to return an ArrayRef instead of a const ↵Craig Topper3-3/+3
std::vector reference. NFC llvm-svn: 241430
2015-06-24[TableGen] Restore the use of the TheInit field in Record to cache the ↵Craig Topper1-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
2015-06-23Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)Alexander Kornienko1-1/+1
Apparently, the style needs to be agreed upon first. llvm-svn: 240390
2015-06-19Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko1-1/+1
The patch is generated using this command: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/ Thanks to Eugene Kosov for the original patch! llvm-svn: 240137
2015-06-06[TableGen] Change OpInit::getNumOperands and getOperand to use unsigned ↵Craig Topper1-2/+2
integers. NFC llvm-svn: 239210
2015-06-06[TableGen] Remove trailing whitespace, add space between 'if' and paren, ↵Craig Topper1-16/+16
other formatting fixes. NFC llvm-svn: 239209
2015-06-06[TableGen] Remove unnecessary temporary. NFCCraig Topper1-2/+1
llvm-svn: 239208
2015-06-06[TableGen] Fold variable declaration/initialization into if condition for a ↵Craig Topper1-8/+6
couple short lived variables. NFC llvm-svn: 239207
2015-06-06[TableGen] Remove unnecessary outer 'if' and merge it's conditions into the ↵Craig Topper1-42/+41
inner 'if's. NFC llvm-svn: 239206
2015-06-06[TableGen] Fold variable declarations with their assignments. NFCCraig Topper1-4/+2
llvm-svn: 239205
2015-06-04[TableGen] Use range-based for loops. NFCCraig Topper1-12/+13
llvm-svn: 239022
2015-06-04[TableGen] Merge single prefix bit in RecordVal into PointerIntPair with ↵Craig Topper1-5/+5
Name to reduce memory usage. llvm-svn: 239021
2015-06-02[TableGen] Use range-based for loops. NFCCraig Topper1-12/+10
llvm-svn: 238808
2015-06-02[TableGen] Rename ListInit::getSize to just 'size' to be more consistent.Craig Topper2-6/+6
llvm-svn: 238806
2015-06-02[TableGen] Use range-based for loops. NFC.Craig Topper1-11/+10
llvm-svn: 238805
2015-06-01[TableGen] Move a couple virtual methods out of line so vtable anchors can ↵Craig Topper1-3/+7
be removed. NFC llvm-svn: 238727
2015-05-30[TableGen] Merge RecTy::typeIsConvertibleTo and RecTy::baseClassOf. NFCCraig Topper1-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
2015-05-30[TableGen] Remove all the variations of RecTy::convertValue and just handle ↵Craig Topper1-173/+217
the conversions in convertInitializerTo directly. This saves a bunch of vtable entries. NFC llvm-svn: 238646
2015-05-29Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial typesBenjamin Kramer1-2/+2
If the type isn't trivially moveable emplace can skip a potentially expensive move. It also saves a couple of characters. Call sites were found with the ASTMatcher + some semi-automated cleanup. memberCallExpr( argumentCountIs(1), callee(methodDecl(hasName("push_back"))), on(hasType(recordDecl(has(namedDecl(hasName("emplace_back")))))), hasArgument(0, bindTemporaryExpr( hasType(recordDecl(hasNonTrivialDestructor())), has(constructExpr()))), unless(isInTemplateInstantiation())) No functional change intended. llvm-svn: 238602
2015-05-29[TableGen] Remove convertValue functions for UnOpInit, BinOpInit, and ↵Craig Topper1-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
2015-05-28Don't call utostr in Twine/raw_ostream contexts.Benjamin Kramer1-10/+7
Creating temporary std::strings there is unnecessary. llvm-svn: 238412
2015-05-28[TableGen] Use DefInit::getAsString instead of getDef()->getName(). NFCCraig Topper1-1/+1
llvm-svn: 238399
2015-05-28[TableGen] Don't convert types to strings to query what they are. Just use 'isa'Craig Topper1-2/+2
llvm-svn: 238398
2015-05-26[TableGen] Fix line wrapping logic for the autogenerated header to use math ↵Craig Topper1-7/+6
that makes more sense (at least to me). The old code had a bug if the description was between 75 and 85 characters or so as it substracted PSLen from Desc.size() instead of MAX_LINE_LEN in the compare. It also calculated odd values for PosE on the last split and just let StringRef::slice take care of it being larger than the description string. llvm-svn: 238187
2015-05-26[TableGen] Rewrite an assert to not do a bunch unsigned math and then try to ↵Craig Topper1-3/+3
ensure the result is a positive number. I think the fact that it was explicitly excluding 0 kept this from being a tautology. The exclusion of 0 for the old math was also a bug that's easily hit if the description gets split into multiple lines. llvm-svn: 238186
2015-05-26[TableGen] Put a space between '*' and description in the autogenerated ↵Craig Topper1-7/+6
tablegen header. Minor cleanup in surrounding code. llvm-svn: 238185
2015-05-26[TableGen] Fix indentation. NFCCraig Topper1-1/+1
llvm-svn: 238181