Ahmed Bougacha
27cc0cc039
[TableGen] Autobrief-ize Record. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275425 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-14 14:53:14 +00:00
Ahmed Bougacha
cf03606efc
[TableGen] Cleanup Record comments. NFC.
...
LLVM doesn't use exceptions anymore.
Also remove the implementation comments. Some of them diverged.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275424 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-14 14:53:11 +00:00
Tim Northover
69ada669bc
AArch64: TableGenerate system instruction operands.
...
The way the named arguments for various system instructions are handled at the
moment has a few problems:
- Large-scale duplication between AArch64BaseInfo.h and AArch64BaseInfo.cpp
- That weird Mapping class that I have no idea what I was on when I thought
it was a good idea.
- Searches are performed linearly through the entire list.
- We print absolutely all registers in upper-case, even though some are
canonically mixed case (SPSel for example).
- The ARM ARM specifies sysregs in terms of 5 fields, but those are relegated
to comments in our implementation, with a slightly opaque hex value
indicating the canonical encoding LLVM will use.
This adds a new TableGen backend to produce efficiently searchable tables, and
switches AArch64 over to using that infrastructure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274576 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-05 21:23:04 +00:00
Tim Northover
edff0683c8
TableGen: promote "code" type from syntactic sugar.
...
It's being immediately converted to a "string", but being able to tell what
type the field was originally can be useful in backends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274575 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-05 21:22:55 +00:00
Reid Kleckner
5f0f4b69f4
[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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274288 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 23:04:07 +00:00
Aaron Ballman
0150ff76aa
Reverting r263474; it turns out there are uses of the public interface, but MSVC wasn't caring about them.
...
http://lab.llvm.org:8080/green//job/clang-stage1-cmake-RA-incremental_build/21475/consoleFull#-45876453249ba4694-19c4-4d7e-bec5-911270d8a58c
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/8879
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263475 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-14 20:03:15 +00:00
Aaron Ballman
765ea87744
The file header of TrailingObjects.h suggests that TrailingObjects be inherited privately because the public APIs it exposes are not meant as part of the interface. There's no functional change because nothing currently relied on these being inherited publicly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263474 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-14 19:57:48 +00:00
Richard Smith
17a583f29c
A couple more UB fixes for C++14 sized deallocation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262891 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-08 00:59:44 +00:00
Reid Kleckner
6ebd4e68e8
Minor performance tweaks to llvm-tblgen (and a few that might be a good idea)
...
Summary:
This patch adds a reserve call to an expensive function
(`llvm::LoadIntrinsics`), and may fix a few other low hanging
performance fruit (I've put them in comments for now, so we can
discuss).
**Motivation:**
As I'm sure other developers do, when I build LLVM, I build the entire
project with the same config (`Debug`, `MinSizeRel`, `Release`, or
`RelWithDebInfo`). However, the `Debug` config also builds llvm-tblgen
in `Debug` mode. Later build steps that run llvm-tblgen then can
actually be the slowest steps in the entire build. Nobody likes slow
builds.
Reviewers: rnk, dblaikie
Differential Revision: http://reviews.llvm.org/D16832
Patch by Alexander G. Riccio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259683 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-03 19:34:28 +00:00
Reid Kleckner
fa21741f38
[llvm-tblgen] Avoid StringMatcher for GCC and MS builtin names
...
This brings the compile time of Function.cpp from ~40s down to ~4s for
me locally. It also shaves off about 400KB of object file size in a
release+asserts build.
I also realized that the AMDGPU backend does not have any GCC builtin
names to match, so the extra lookup was a no-op. I removed it to silence
a zero-length string table array warning. There should be no functional
change here.
This change really ends the story of PR11951.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258897 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 01:43:12 +00:00
Craig Topper
dd6092dc5c
[TableGen] Use FoldingSets instead of DenseMaps to unique UnOpInit, BinOpInit and TernOpInit. This remove the memory needed to store the key for the DenseMap. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258071 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 20:36:06 +00:00
Craig Topper
401ee722ee
[TableGen] Merge the SuperClass Record and SMRange vector into a single vector. This removes the state needed to manage the extra vector thus reducing the size of the Record class. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258065 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 19:52:37 +00:00
Craig Topper
83f897b505
[TableGen] Reorder fields in Record class to optimize memory usage. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258064 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 19:52:29 +00:00
Craig Topper
11c70fa131
[TableGen] Allocate the Init pointer array for BitsInit/ListInit after the BitsInit/ListInit object itself. Saves a bit of memory. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258063 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 19:52:24 +00:00
Craig Topper
15d448c864
[TableGen] Fix a typo in r256733.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256734 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-04 06:35:08 +00:00
Craig Topper
d8f59233d2
[TableGen] Use some free space in Init to store the opcode for UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256733 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-04 06:28:49 +00:00
Hans Wennborg
07a3b97f20
Re-commit r247216: "Fix Clang-tidy misc-use-override warnings, other minor fixes"
...
Except the changes that defined virtual destructors as =default, because that
ran into problems with GCC 4.7 and overriding methods that weren't noexcept.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247298 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 16:49:58 +00:00
Hans Wennborg
2515069180
Revert r247216: "Fix Clang-tidy misc-use-override warnings, other minor fixes"
...
This caused build breakges, e.g.
http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/24926
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247226 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 00:57:26 +00:00
Hans Wennborg
bfd007fd70
Fix Clang-tidy misc-use-override warnings, other minor fixes
...
Patch by Eugene Zelenko!
Differential Revision: http://reviews.llvm.org/D12740
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247216 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 00:12:56 +00:00
Craig Topper
8e7b0427c4
[TableGen] Remove unused constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244718 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-12 06:43:10 +00:00
Craig Topper
03973a139d
[TableGen] Make StringInit constructor take a StringRef instead of const std::string&. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244426 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-09 22:03:04 +00:00
Craig Topper
fade2f72b8
[TableGen] Change a couple methods to return an ArrayRef instead of a const std::vector reference. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241430 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-06 06:23:01 +00:00
Craig Topper
1405564987
[TableGen] Restore the use of the TheInit field in Record to cache the Record's DefInit. I broke this when I fixed memory leaks recently. Remove the DenseMap that mapped Record's to DefInit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240524 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-24 06:19:19 +00:00
Alexander Kornienko
cd52a7a381
Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)
...
Apparently, the style needs to be agreed upon first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240390 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 09:49:53 +00:00
Alexander Kornienko
cf0db29df2
Fixed/added namespace ending comments using clang-tidy. NFC
...
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240137 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-19 15:57:42 +00:00
Craig Topper
f428f1732a
[TableGen] Remove unused method declaration. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239801 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-16 05:44:06 +00:00
Craig Topper
0547b62a14
[TableGen] Use the SMLoc header file instead of SourceMgr header file in a couple places. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239274 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 01:35:40 +00:00
Craig Topper
030cc6948a
[TableGen] Remove unnecessary include. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239249 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 06:01:22 +00:00
Craig Topper
698d0ae542
[TableGen] Remove unnecessary forward declaration. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239248 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 06:01:19 +00:00
Craig Topper
df70939242
[TableGen] Write one of the Record constructors in terms of the other constructor to reduce code duplication. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239247 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 06:01:17 +00:00
Craig Topper
20d6747043
[TableGen] Remove unused function. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239246 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 06:01:15 +00:00
Craig Topper
06b2485912
[TableGen] Use 'isa' to check if something is an UnsetInit rather than getting the UnsetInit singleton and comparing pointers. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239245 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 06:01:13 +00:00
Craig Topper
d032911655
[TableGen] Change OpInit::getNumOperands and getOperand to use unsigned integers. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239210 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-06 01:34:04 +00:00
Craig Topper
71bb0e10c4
[TableGen] Replace a couple if/else chains with a switch. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239023 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 07:40:16 +00:00
Craig Topper
40c791eda9
[TableGen] Merge single prefix bit in RecordVal into PointerIntPair with Name to reduce memory usage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239021 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 07:40:12 +00:00
Craig Topper
caa40ec228
[TableGen] Use range-based for loops. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238808 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-02 06:19:28 +00:00
Craig Topper
77c7578426
Fix typo in comment. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238807 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-02 06:19:25 +00:00
Craig Topper
61f49542d7
[TableGen] Rename ListInit::getSize to just 'size' to be more consistent.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238806 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-02 04:15:57 +00:00
Craig Topper
dd2a26fccb
[TableGen] Move a couple virtual methods out of line so vtable anchors can be removed. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238727 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-01 06:44:18 +00:00
Craig Topper
f15cab13cb
[TableGen] Remove unnecessary explicit initialization to null of a unique_ptr. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238726 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-01 06:44:16 +00:00
Craig Topper
ec93655812
[TableGen] Remove unnecessary forward declarations. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238725 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-01 06:44:14 +00:00
Craig Topper
be43b88fae
[TableGen] Merge RecTy::typeIsConvertibleTo and RecTy::baseClassOf. NFC
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238648 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-30 07:36:01 +00:00
Craig Topper
17246b12cf
[TableGen] Remove all the variations of RecTy::convertValue and just handle the conversions in convertInitializerTo directly. This saves a bunch of vtable entries. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238646 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-30 07:34:51 +00:00
Craig Topper
60bc0ab340
[TableGen] Remove convertValue functions for UnOpInit, BinOpInit, and TernOpInit as they weren't able to be called.
...
I don't think converting the inputs to the Ops was the right behavior anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238543 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-29 05:51:32 +00:00
Craig Topper
d60caada8b
[TableGen] Remove unnecessary include and just forward declare. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238179 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-26 06:48:43 +00:00
Craig Topper
43ec501d2c
[TableGen] Make some variable names consistent with their type names and just generally consistent across all of the overloads.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237775 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-20 05:40:13 +00:00
Craig Topper
64f9e5908b
[TableGen] Don't override convertValue for some of the Init types when it does the same thing as the base class implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237773 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-20 05:40:06 +00:00
Craig Topper
1fbf73bae3
[TableGen] Remove ListInit::size() in favor of getSize() which does the same thing and is already used in most places. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237341 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-14 05:53:56 +00:00
Craig Topper
a4d6a35bf8
Remove unnecessary forward declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237093 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-12 06:09:57 +00:00
Craig Topper
a9a01d9879
[TableGen] Don't leak Expanders and Operators in SetTheory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235697 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-24 06:49:44 +00:00