| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Some targets have no sub-registers at all. Use the TargetRegisterInfo
versions of composeSubRegIndices(), getSubClassWithSubReg(), and
getMatchingSuperRegClass() for those targets.
llvm-svn: 156075
|
| |
|
|
|
|
| |
be used by clang-tblgen.
llvm-svn: 156000
|
| |
|
|
|
|
| |
only targets that want the function get it. This prevents other targets from getting an unused function warning.
llvm-svn: 155538
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
'&XXXRegClass' instead.
llvm-svn: 155270
|
| |
|
|
| |
llvm-svn: 155234
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
There's almost always a small number of instruction operands, so
use a SmallVector and save on heap allocations.
llvm-svn: 155143
|
| |
|
|
| |
llvm-svn: 155142
|
| |
|
|
|
|
| |
functional change since XXXRegisterClass is just a constant alias of &XXXRegClass, but should probably go away.
llvm-svn: 155104
|
| |
|
|
| |
llvm-svn: 155075
|
| |
|
|
|
|
|
| |
StringMap iterators are not deterministic, and that's more important
here than speed or memory.
llvm-svn: 155039
|
| |
|
|
| |
llvm-svn: 155038
|
| |
|
|
| |
llvm-svn: 155037
|
| |
|
|
| |
llvm-svn: 155034
|
| |
|
|
| |
llvm-svn: 155032
|
| |
|
|
| |
llvm-svn: 155027
|
| |
|
|
| |
llvm-svn: 155026
|
| |
|
|
| |
llvm-svn: 155025
|
| |
|
|
| |
llvm-svn: 155024
|
| |
|
|
| |
llvm-svn: 155015
|
| |
|
|
|
|
| |
That way we get source line number information from the diagnostics.
llvm-svn: 155014
|
| |
|
|
|
|
| |
coprocessor number was removed for this instruction.
llvm-svn: 155000
|
| |
|
|
| |
llvm-svn: 154951
|
| |
|
|
| |
llvm-svn: 154881
|
| |
|
|
|
|
| |
doing attribute table lookup. Also fix attribute table lookup to handle 'invalid' intrinsic correctly. Fixes PR12542
llvm-svn: 154658
|
| |
|
|
| |
llvm-svn: 154533
|
| |
|
|
| |
llvm-svn: 154532
|
| |
|
|
| |
llvm-svn: 154531
|
| |
|
|
| |
llvm-svn: 154518
|
| |
|
|
|
|
|
| |
The pruning is more complete if it is not done incrementally. The code
is also a tad less convluted.
llvm-svn: 154510
|
| |
|
|
| |
llvm-svn: 154477
|
| |
|
|
|
|
|
| |
Handle mixing allocatable and unallocatable register gracefully.
Simplify the pruning of register unit sets.
llvm-svn: 154474
|
| |
|
|
| |
llvm-svn: 154452
|
| |
|
|
|
|
| |
Recent refactoring introduced a bug. Fix: added buildRegUnitSets.
llvm-svn: 154382
|
| |
|
|
|
|
| |
Jakob's review.
llvm-svn: 154377
|
| |
|
|
|
|
|
|
|
|
| |
This is a new algorithm that finds sets of register units that can be
used to model registers pressure. This handles arbitrary, overlapping
register classes. Each register class is associated with a (small)
list of pressure sets. These are the dimensions of pressure affected
by the register class's liveness.
llvm-svn: 154374
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is a new algorithm that associates registers with weighted
register units to accuretely model their effect on register
pressure. This handles registers with multiple overlapping
subregisters. It is possible, but almost inconceivable that the
algorithm fails to find an exact solution for a target description. If
an exact solution cannot be found, an inexact, but reasonable solution
will be chosen.
llvm-svn: 154373
|
| |
|
|
| |
llvm-svn: 154372
|
| |
|
|
| |
llvm-svn: 153997
|
| |
|
|
| |
llvm-svn: 153937
|
| |
|
|
| |
llvm-svn: 153935
|
| |
|
|
| |
llvm-svn: 153922
|
| |
|
|
|
|
|
| |
I just noticed Jakob's examples of the proper application of
std::set... routines.
llvm-svn: 153918
|
| |
|
|
| |
llvm-svn: 153875
|
| |
|
|
|
|
| |
This way we can get AVX v-prefixed instructions tail merged with the normal insns.
llvm-svn: 153869
|
| |
|
|
|
|
| |
tricky due to the target specific sizes for some of the fields so the ordering is only optimal for the targets in the tree.
llvm-svn: 153865
|
| |
|
|
|
|
| |
using the instruction name table from MCInstrInfo. Reduces static data in the InstPrinter implementations.
llvm-svn: 153863
|
| |
|
|
| |
llvm-svn: 153857
|