Jakob Stoklund Olesen
2c4618568d
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
d75f11c7fc
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
0b38e611c1
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
b1f429ef36
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
7f140ab879
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
7f337201dd
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
9fc9ae5ef4
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
0507cabcbd
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
5828c654b9
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
7ac2ac85a8
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
56cbdd4cd7
Remove 'XXXRegisterClass' from tablegen output. Targets should use '&XXXRegClass' instead.
...
llvm-svn: 155270
2012-04-21 01:49:25 +00:00
Andrew Trick
155245effc
TableGen'd RegPressure: Added getPressureSetName.
...
llvm-svn: 155234
2012-04-20 20:44:58 +00:00
Bill Wendling
401d727bb5
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
0cd0534390
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
e6c28a171e
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
e8c60733b9
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
d335490731
Update some internal naming conventions to modern style.
...
llvm-svn: 155142
2012-04-19 17:52:32 +00:00
Daniel Dunbar
31c4fe4454
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
626573d98d
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
013a59646b
Fix typo.
...
llvm-svn: 155075
2012-04-18 23:46:25 +00:00
Bill Wendling
d32f118a5e
Add a flag to rebranch if we need to.
...
llvm-svn: 155049
2012-04-18 21:38:12 +00:00
Jim Grosbach
f77ed6f9c3
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
2991126d0d
tblgen: remove duplicated newlines.
...
llvm-svn: 155038
2012-04-18 19:22:47 +00:00
Jim Grosbach
050ec9bce7
Replace some uses of std:map<std::string,...> with StringMap.
...
llvm-svn: 155037
2012-04-18 19:13:59 +00:00
Jim Grosbach
e29486798c
Use SmallVector for the requirements on an InstAlias.
...
llvm-svn: 155034
2012-04-18 19:02:43 +00:00
Jim Grosbach
ae2ac1f597
Tidy up. Formatting.
...
llvm-svn: 155032
2012-04-18 18:56:33 +00:00
Jim Grosbach
26c6c85855
Move a few more warnings to use PrintWarning().
...
llvm-svn: 155027
2012-04-18 18:39:31 +00:00
Jim Grosbach
f8c6a6ba04
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
5e14805a0f
Formatting.
...
llvm-svn: 155025
2012-04-18 18:39:23 +00:00
Jim Grosbach
e846a32427
Tidy up. Add a '.' at the end of the sentence.
...
llvm-svn: 155024
2012-04-18 18:39:19 +00:00
Jim Grosbach
78b59b30e7
Clean up warning text. Remove extraneous prefix.
...
llvm-svn: 155015
2012-04-18 18:09:50 +00:00
Jim Grosbach
3c537f8fb4
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
8e0ebc8ed7
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
d32ea4a8a9
Sanity check error handling for TokenAlias.
...
llvm-svn: 154951
2012-04-17 21:23:52 +00:00
Manuel Klimek
47de8bd0ef
Goodbye, JSONParser...
...
llvm-svn: 154930
2012-04-17 17:21:17 +00:00
Bill Wendling
be2b67fb44
Download and build the compiler-rt project.
...
llvm-svn: 154905
2012-04-17 05:11:51 +00:00
Bill Wendling
7412502e7a
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
ced1f200a3
Tidy up. 80 columns.
...
llvm-svn: 154881
2012-04-17 00:01:04 +00:00
Bob Wilson
da87e36649
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
da52eeedcb
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
8327980405
Remove incorrect comment.
...
llvm-svn: 154533
2012-04-11 21:09:54 +00:00
Jim Grosbach
80c9f4d837
Tidy up. Remove hard tab characters.
...
llvm-svn: 154532
2012-04-11 21:02:33 +00:00
Jim Grosbach
51aa44347a
Tidy up. Whitespace.
...
llvm-svn: 154531
2012-04-11 21:02:30 +00:00
Andrew Trick
6d7aff8241
TableGen's regpressure: emit per-registerclass weight limits.
...
llvm-svn: 154518
2012-04-11 18:16:28 +00:00
Andrew Trick
2628429e92
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
a2a5c3bb71
Tablegen'd regpressure: emit the weighted pressure limit.
...
llvm-svn: 154477
2012-04-11 04:31:33 +00:00
Andrew Trick
ccfe0f1fc6
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
0c60300f39
TableGen/reginfo potential bug: typo from previous checkin.
...
llvm-svn: 154452
2012-04-10 23:53:32 +00:00
Andrew Trick
360c19ad86
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
218abb3a9c
Use std::includes instead of my own implementation.
...
Jakob's review.
llvm-svn: 154377
2012-04-10 03:12:29 +00:00