David Majnemer
0a16c22846
Use range algorithms instead of unpacking begin/end
...
No functionality change is intended.
llvm-svn: 278417
2016-08-11 21:15:00 +00:00
Justin Bogner
92a8c6112c
IR: Sort generic intrinsics before target specific ones
...
This splits out the intrinsic table such that generic intrinsics come
first and target specific intrinsics are grouped by target. From here
we can find out which target an intrinsic is for or differentiate
between generic and target intrinsics.
The motivation here is to make it easier to move target specific
intrinsic handling out of generic code.
llvm-svn: 275575
2016-07-15 16:31:37 +00:00
Nicolai Haehnle
b48275f134
Add IntrWrite[Arg]Mem intrinsic property
...
Summary:
This property is used to mark an intrinsic that only writes to memory, but
neither reads from memory nor has other side effects.
An example where this is useful is the llvm.amdgcn.buffer.store.format.*
intrinsic, which corresponds to a store instruction that goes through a special
buffer descriptor rather than through a plain pointer.
With this property, the intrinsic should still be handled as having side
effects at the LLVM IR level, but machine scheduling can make smarter
decisions.
Reviewers: tstellarAMD, arsenm, joker.eph, reames
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D18291
llvm-svn: 266826
2016-04-19 21:58:33 +00:00
Nicolai Haehnle
152c18e9ac
[TableGen] Make an error message slightly more informative
...
Reviewers: ab, spop, stoklund
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D19192
llvm-svn: 266823
2016-04-19 21:58:10 +00:00
Craig Topper
28851b62cc
[TableGen] Store result of getInstructionsByEnumValue in an ArrayRef instead of accidentally copying to a vector.
...
llvm-svn: 259336
2016-02-01 01:33:42 +00:00
Craig Topper
1282df50c4
[TableGen] Remove an assumption about the order of encodings in the MVT::SimpleValueType enum. Instead of assuming the types are sorted by size, scan the typeset arrays to find the smallest/largest type. NFC
...
llvm-svn: 254589
2015-12-03 05:57:37 +00:00
Craig Topper
3522ab30db
[TableGen] Use SmallString instead of std::string to build up a string to avoid heap allocations. NFC
...
llvm-svn: 254221
2015-11-28 08:23:02 +00:00
Craig Topper
8985efe546
[TableGen] Sort pattern predicates before concatenating into a string so that different orders of the same set will produce the same string. This can reduce the number of unique predicates in the isel tables. NFC
...
llvm-svn: 254192
2015-11-27 05:44:04 +00:00
Craig Topper
9a44b3fa58
[SelectionDAG] Add a SDTCisSameSizeAs type constraint that can be used to ensure vector widths match even if the element size and count don't.
...
llvm-svn: 254138
2015-11-26 07:02:18 +00:00
Craig Topper
25ce6b82c6
[TableGen] Flip reversed comments.
...
llvm-svn: 254136
2015-11-26 06:30:40 +00:00
Craig Topper
5712d46114
[TableGen] Use std::remove_if instead of manually coded loops that call erase multiple times. NFC
...
llvm-svn: 253964
2015-11-24 08:20:47 +00:00
Craig Topper
16f1cbd1e4
[TableGen] Use the other version of EnforceVectorEltTypeIs inside the TypeSet version of EnforceVectorEltTypeIs to reduce duplicated code. NFC
...
llvm-svn: 253963
2015-11-24 08:20:45 +00:00
Craig Topper
dbfcc10e44
[TableGen] Fix formatting and use logical OR. NFC
...
llvm-svn: 253962
2015-11-24 08:20:44 +00:00
Craig Topper
fef745c36a
[TableGen] Use std::set_intersection to merge TypeSets. NFC
...
llvm-svn: 253961
2015-11-24 08:20:42 +00:00
Craig Topper
4856c81b46
[TableGen] Use SmallVector::assign instead of a resize and replace element.
...
llvm-svn: 253960
2015-11-24 08:20:41 +00:00
Craig Topper
de2d7593a2
[TableGen] Use std::remove_if instead of manually coded loops that called erase inside them. NFC
...
llvm-svn: 253857
2015-11-23 07:19:10 +00:00
Craig Topper
d2177de61a
[TableGen] Use empty() instead of checking if size of vector is greater than or equal to 1.
...
llvm-svn: 253856
2015-11-23 07:19:08 +00:00
Craig Topper
2f70a7ef57
Revert a portion of r253836 that seems to have broke a couple bots.
...
llvm-svn: 253838
2015-11-22 22:43:40 +00:00
Craig Topper
306cb12286
[TableGen] Use range-based for loops. NFC
...
llvm-svn: 253836
2015-11-22 20:46:24 +00:00
Craig Topper
43c414f31b
[TableGen] Use std::fill instead of a manually coded loop. NFC
...
llvm-svn: 253835
2015-11-22 20:46:22 +00:00
David Blaikie
fda69dd736
Further simplify from r253832 with some unique_ptr and coalescing conditions
...
llvm-svn: 253834
2015-11-22 20:11:21 +00:00
David Blaikie
b8fc0186c7
Further simplify from r253832, removing unnecessary intermediate lambdas
...
llvm-svn: 253833
2015-11-22 20:02:58 +00:00
Craig Topper
cbdc27eb74
[TableGen] Use std::any_of and std::find instead of manual loops. NFC
...
llvm-svn: 253832
2015-11-22 19:27:02 +00:00
Craig Topper
5b0f57df1c
[TableGen] Add a space between type and '*' in front of a variable name in output file. While there replace type with 'auto' since there's a cast on the right side of the assignment. NFC
...
llvm-svn: 249980
2015-10-11 16:59:29 +00:00
Bruce Mitchener
e9ffb45b60
Fix typos.
...
Summary: This fixes a variety of typos in docs, code and headers.
Subscribers: jholewinski, sanjoy, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D12626
llvm-svn: 247495
2015-09-12 01:17:08 +00:00