Jakob Stoklund Olesen
3f6faaec70
Remove TargetRegisterClass::SuperRegClasses.
...
This manually enumerated list of super-register classes has been
superceeded by the automatically computed super-register class masks
available through SuperRegClassIterator.
llvm-svn: 156151
2012-05-04 03:30:28 +00:00
Jakob Stoklund Olesen
2f460ae3b4
Use a shared implementation of getMatchingSuperRegClass().
...
TargetRegisterClass now gives access to the necessary tables.
llvm-svn: 156122
2012-05-03 22:49:04 +00:00
Jakob Stoklund Olesen
67dd612cdd
Add TargetRegisterClass::getSuperRegIndices().
...
This is a pointer into one of the tables used by
getMatchingSuperRegClass(). It makes it possible to use a shared
implementation of that function.
llvm-svn: 156121
2012-05-03 22:49:00 +00:00
Jakob Stoklund Olesen
9e827d0510
Emit SuperRegMasks as part of the existing SubClassMask arrays.
...
The RC->getSubClassMask() pointer now points to a sequence of register
class bit masks. The first bit mask is the normal sub-class mask. The
following masks are super-reg class masks used by
getMatchingSuperRegClass().
llvm-svn: 156120
2012-05-03 22:48:56 +00:00
Jakob Stoklund Olesen
f3d0690bf5
Compress tables for getMatchingSuperRegClass().
...
Many register classes only have a few super-registers, so it is not
necessary to keep individual bit masks for all possible sub-register
indices.
llvm-svn: 156083
2012-05-03 18:14:20 +00:00
Owen Anderson
fe346cd24f
Add the half type to the LLVM IR vim syntax highlighting.
...
llvm-svn: 156080
2012-05-03 17:24:12 +00:00
Jakob Stoklund Olesen
f5bc1eb9eb
Don't override subreg functions in targets without subregisters.
...
Some targets have no sub-registers at all. Use the TargetRegisterInfo
versions of composeSubRegIndices(), getSubClassWithSubReg(), and
getMatchingSuperRegClass() for those targets.
llvm-svn: 156075
2012-05-03 16:26:20 +00:00
Douglas Gregor
12c1cd33f4
Move llvm-tblgen's StringMatcher into the TableGen library so it can
...
be used by clang-tblgen.
llvm-svn: 156000
2012-05-02 17:32:48 +00:00
Craig Topper
3ec7c2aa84
Add ifdef around getSubtargetFeatureName in tablegen output file so that only targets that want the function get it. This prevents other targets from getting an unused function warning.
...
llvm-svn: 155538
2012-04-25 06:56:34 +00:00
Jim Grosbach
5117ef7453
ARM: improved assembler diagnostics for missing CPU features.
...
When an instruction match is found, but the subtarget features it
requires are not available (missing floating point unit, or thumb vs arm
mode, for example), issue a diagnostic that identifies what the feature
mismatch is.
rdar://11257547
llvm-svn: 155499
2012-04-24 22:40:08 +00:00
Craig Topper
efada2c0b4
Remove 'XXXRegisterClass' from tablegen output. Targets should use '&XXXRegClass' instead.
...
llvm-svn: 155270
2012-04-21 01:49:25 +00:00
Andrew Trick
03eaaf5b12
TableGen'd RegPressure: Added getPressureSetName.
...
llvm-svn: 155234
2012-04-20 20:44:58 +00:00
Bill Wendling
d63dcde113
Modify the sh-bang to run out-of-the-box for FreeBSDes.
...
llvm-svn: 155230
2012-04-20 20:31:44 +00:00
Jim Grosbach
31c2d3fa74
TableGen support for auto-generating assembly two-operand aliases.
...
Assembly matchers for instructions with a two-operand form. ARM is full
of these, for example:
add {Rd}, Rn, Rm // Rd is optional and is the same as Rn if omitted.
The property TwoOperandAliasConstraint on the instruction definition controls
when, and if, an alias will be formed. No explicit InstAlias definitions
are required.
rdar://11255754
llvm-svn: 155172
2012-04-19 23:59:23 +00:00
Michael J. Spencer
9125493efe
Remove llvm-ld and llvm-stub (which is only used by llvm-ld).
...
llvm-ld is no longer useful and causes confusion and so it is being removed.
* Does not work very well on Windows because it must call a gcc like driver to
assemble and link.
* Has lots of hard coded paths which are wrong on many systems.
* Does not understand most of ld's options.
* Can be partially replaced by llvm-link | opt | {llc | as, llc -filetype=obj} |
ld, or fully replaced by Clang.
I know of no production use of llvm-ld, and hacking use should be
replaced by Clang's driver.
llvm-svn: 155147
2012-04-19 19:27:54 +00:00
Jim Grosbach
a37e2295d4
Use a SmallVector instead of std::vector for ResOperands.
...
There's almost always a small number of instruction operands, so
use a SmallVector and save on heap allocations.
llvm-svn: 155143
2012-04-19 17:52:34 +00:00
Jim Grosbach
8c2beaac8b
Update some internal naming conventions to modern style.
...
llvm-svn: 155142
2012-04-19 17:52:32 +00:00
Daniel Dunbar
58cfaf8684
llvm-lit: Inject the lit module path at the beginning of sys.path, just in case
...
the user has another lit somewhere.
llvm-svn: 155131
2012-04-19 16:31:08 +00:00
Craig Topper
eb63a4df26
Make fast isel use &XXXRegClass instead of XXXRegisterClass. Not a functional change since XXXRegisterClass is just a constant alias of &XXXRegClass, but should probably go away.
...
llvm-svn: 155104
2012-04-19 06:52:06 +00:00
Jim Grosbach
925a6d08c5
Fix typo.
...
llvm-svn: 155075
2012-04-18 23:46:25 +00:00
Bill Wendling
eb1c2bdc1f
Add a flag to rebranch if we need to.
...
llvm-svn: 155049
2012-04-18 21:38:12 +00:00
Jim Grosbach
efe653f973
Revert "Replace some uses of std:map<std::string,...> with StringMap."
...
StringMap iterators are not deterministic, and that's more important
here than speed or memory.
llvm-svn: 155039
2012-04-18 20:24:49 +00:00
Benjamin Kramer
11983a4f85
tblgen: remove duplicated newlines.
...
llvm-svn: 155038
2012-04-18 19:22:47 +00:00
Jim Grosbach
2bed0f974f
Replace some uses of std:map<std::string,...> with StringMap.
...
llvm-svn: 155037
2012-04-18 19:13:59 +00:00
Jim Grosbach
dba3f5be00
Use SmallVector for the requirements on an InstAlias.
...
llvm-svn: 155034
2012-04-18 19:02:43 +00:00
Jim Grosbach
f4e6708c7a
Tidy up. Formatting.
...
llvm-svn: 155032
2012-04-18 18:56:33 +00:00
Jim Grosbach
9a7f4b76e5
Move a few more warnings to use PrintWarning().
...
llvm-svn: 155027
2012-04-18 18:39:31 +00:00
Jim Grosbach
1752ffbfe5
Tidy up. No need for a Twine here, as it's just constants.
...
llvm-svn: 155026
2012-04-18 18:39:27 +00:00
Jim Grosbach
0fda36485e
Formatting.
...
llvm-svn: 155025
2012-04-18 18:39:23 +00:00
Jim Grosbach
40e984074c
Tidy up. Add a '.' at the end of the sentence.
...
llvm-svn: 155024
2012-04-18 18:39:19 +00:00
Jim Grosbach
7670374c06
Clean up warning text. Remove extraneous prefix.
...
llvm-svn: 155015
2012-04-18 18:09:50 +00:00
Jim Grosbach
3ae48a6236
TableGen use PrintWarning rather than fprintf(stderr,...) for warnings.
...
That way we get source line number information from the diagnostics.
llvm-svn: 155014
2012-04-18 17:46:41 +00:00
Silviu Baranga
a2944116dc
Fixed decoding for the ARM cdp2 instruction. The restriction on the coprocessor number was removed for this instruction.
...
llvm-svn: 155000
2012-04-18 13:02:55 +00:00
Jim Grosbach
37f6dcb3a8
Sanity check error handling for TokenAlias.
...
llvm-svn: 154951
2012-04-17 21:23:52 +00:00
Manuel Klimek
1f8918f69d
Goodbye, JSONParser...
...
llvm-svn: 154930
2012-04-17 17:21:17 +00:00
Bill Wendling
6c4eea4db7
Download and build the compiler-rt project.
...
llvm-svn: 154905
2012-04-17 05:11:51 +00:00
Bill Wendling
e30df5aa29
Don't tag libcxx and libcxxabi since we don't release them just yet.
...
llvm-svn: 154889
2012-04-17 01:01:55 +00:00
Jim Grosbach
56e6326033
Tidy up. 80 columns.
...
llvm-svn: 154881
2012-04-17 00:01:04 +00:00
Bob Wilson
3b0fda08e6
Remove old code to strip out unwanted PPC slices for Apple llvmCore.
...
llvm-svn: 154706
2012-04-13 22:58:53 +00:00
Craig Topper
374f19cade
Fix target specific intrinsic handling to adjust intrinsic number before doing attribute table lookup. Also fix attribute table lookup to handle 'invalid' intrinsic correctly. Fixes PR12542
...
llvm-svn: 154658
2012-04-13 06:14:57 +00:00
Jim Grosbach
b4722bba5f
Remove incorrect comment.
...
llvm-svn: 154533
2012-04-11 21:09:54 +00:00
Jim Grosbach
3263a07d48
Tidy up. Remove hard tab characters.
...
llvm-svn: 154532
2012-04-11 21:02:33 +00:00
Jim Grosbach
dac4a95b35
Tidy up. Whitespace.
...
llvm-svn: 154531
2012-04-11 21:02:30 +00:00
Andrew Trick
972541503f
TableGen's regpressure: emit per-registerclass weight limits.
...
llvm-svn: 154518
2012-04-11 18:16:28 +00:00
Andrew Trick
a5eee987e0
TableGen'd regpressure: register unit set pruning.
...
The pruning is more complete if it is not done incrementally. The code
is also a tad less convluted.
llvm-svn: 154510
2012-04-11 17:35:26 +00:00
Andrew Trick
b1a92d3b35
Tablegen'd regpressure: emit the weighted pressure limit.
...
llvm-svn: 154477
2012-04-11 04:31:33 +00:00
Andrew Trick
0d94c73c26
Table-generated register pressure fixes.
...
Handle mixing allocatable and unallocatable register gracefully.
Simplify the pruning of register unit sets.
llvm-svn: 154474
2012-04-11 03:19:15 +00:00
Andrew Trick
f8b1a66620
TableGen/reginfo potential bug: typo from previous checkin.
...
llvm-svn: 154452
2012-04-10 23:53:32 +00:00
Andrew Trick
7d52db9864
Fix for register pressure tables.
...
Recent refactoring introduced a bug. Fix: added buildRegUnitSets.
llvm-svn: 154382
2012-04-10 03:36:49 +00:00
Andrew Trick
9002c3157f
Use std::includes instead of my own implementation.
...
Jakob's review.
llvm-svn: 154377
2012-04-10 03:12:29 +00:00