| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
resolving instruction variants.
llvm-svn: 164095
|
| |
|
|
| |
llvm-svn: 164094
|
| |
|
|
|
|
| |
model.
llvm-svn: 164092
|
| |
|
|
| |
llvm-svn: 164088
|
| |
|
|
| |
llvm-svn: 164086
|
| |
|
|
| |
llvm-svn: 164078
|
| |
|
|
| |
llvm-svn: 164075
|
| |
|
|
|
|
|
| |
I have to work out the Target/CodeGen header dependencies
before putting this back.
llvm-svn: 164072
|
| |
|
|
| |
llvm-svn: 164066
|
| |
|
|
| |
llvm-svn: 164064
|
| |
|
|
| |
llvm-svn: 164063
|
| |
|
|
|
|
| |
resolving instruction variants.
llvm-svn: 164062
|
| |
|
|
|
|
| |
model.
llvm-svn: 164061
|
| |
|
|
|
|
| |
model.
llvm-svn: 164060
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Map the CodeGenSchedule object model onto data tables. The structure
of the data tables is defined in MC, so for convenience we include
MCSchedule.h. The alternative is maintaining a redundant copy of the
table structure definitions. Mapping the object model onto data tables
is sufficiently complicated that it should not be interleaved with
emitting source code. This avoids major problem with the backend for
itinerary generation.
llvm-svn: 164059
|
| |
|
|
| |
llvm-svn: 164058
|
| |
|
|
| |
llvm-svn: 164057
|
| |
|
|
|
|
|
| |
Keep GCC's warnings happy. It can't reason out that the state machine won't
ever hit the potentially uninitialized use in OPC_FilterValue.
llvm-svn: 164041
|
| |
|
|
|
|
| |
The cases where no initialization happens should still be checked for logic flaws.
llvm-svn: 164032
|
| |
|
|
| |
llvm-svn: 164012
|
| |
|
|
| |
llvm-svn: 164002
|
| |
|
|
| |
llvm-svn: 163999
|
| |
|
|
|
|
| |
parameters.
llvm-svn: 163984
|
| |
|
|
|
|
| |
targets do not exist in the main tree so this was not noticed.
llvm-svn: 163959
|
| |
|
|
|
|
| |
Collect processor resources from the subtarget defs.
llvm-svn: 163953
|
| |
|
|
|
|
| |
Infer SchedClasses from variants defined by the target or subtarget.
llvm-svn: 163952
|
| |
|
|
|
|
| |
Collect SchedClasses and SchedRW types from the subtarget defs.
llvm-svn: 163951
|
| |
|
|
|
|
| |
represent additional fragments. This recovers some space on ATT X86 syntax and PowerPC which only need 40-bits instead of 48-bits. This also increases ARM to 64-bits to fully encode all of its operands.
llvm-svn: 163880
|
| |
|
|
|
|
| |
targets. If more than 16-bits are needed for any out of tree targets, code will detect and use uint32_t instead.
llvm-svn: 163878
|
| |
|
|
|
|
| |
Fix an issue in r163814.
llvm-svn: 163837
|
| |
|
|
|
|
|
|
|
|
|
| |
48-bit if necessary, in order to reduce the generated code size.
We have 900 cases not covered by OpcodeInfo in ATT AsmWriter and more in Intel
AsmWriter and ARM AsmWriter.
This patch reduced the clang Release build size by 50k, running on a Mac Pro.
llvm-svn: 163814
|
| |
|
|
|
|
|
|
| |
* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
people want -- it starts a new paragraph).
llvm-svn: 163790
|
| |
|
|
|
|
| |
byte represent 8 instructions and the reg modRM byte represents up to 64 instructions. Reduces modRM table from 43k entreis to 25k entries. Based on a patch from Manman Ren.
llvm-svn: 163774
|
| |
|
|
| |
llvm-svn: 163726
|
| |
|
|
| |
llvm-svn: 163721
|
| |
|
|
|
|
| |
unknown def inherits. Make tblgen check for that class, rather than checking for the def itself.
llvm-svn: 163664
|
| |
|
|
|
|
| |
list of registers every time we want to look up a register by name.
llvm-svn: 163659
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sub-register lane masks are bitmasks that can be used to determine if
two sub-registers of a virtual register will overlap. For example, ARM's
ssub0 and ssub1 sub-register indices don't overlap each other, but both
overlap dsub0 and qsub0.
The lane masks will be accurate on most targets, but on targets that use
sub-register indexes in an irregular way, the masks may conservatively
report that two sub-register indices overlap when the eventually
allocated physregs don't.
Irregular register banks also mean that the bits in a lane mask can't be
mapped onto register units, but the concept is similar.
llvm-svn: 163630
|
| |
|
|
|
|
|
| |
Preserve the Composites map in the CodeGenSubRegIndex class so it can be
used to determine which sub-register indices can actually be composed.
llvm-svn: 163629
|
| |
|
|
|
|
|
|
| |
Apparently, NumSubRegIndices was completely unused before. Adjust it by
one to include the null subreg index, just like getNumRegs() includes
the null register.
llvm-svn: 163628
|
| |
|
|
|
|
| |
table size.
llvm-svn: 163594
|
| |
|
|
| |
llvm-svn: 163501
|
| |
|
|
|
|
|
|
| |
hits to the directory.
For example, which('loop-convert') returns 'loop-convert' when the directory 'loop-convert' exists.
llvm-svn: 163469
|
| |
|
|
|
|
|
|
|
| |
matches without using regular expressions."
Turns out I did not need it after all. If we find a use for it in the future, we
can resurrect it.
llvm-svn: 163457
|
| |
|
|
|
|
| |
Patch by Ivan Llopard!
llvm-svn: 163424
|
| |
|
|
|
|
| |
without using regular expressions.
llvm-svn: 163371
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This patch is inspired by the failure of the following code snippet
which is used to convert enumerable values into encoding bits to
improve the readability of td files.
class S<int s> {
bits<2> V = !if(!eq(s, 8), {0, 0},
!if(!eq(s, 16), {0, 1},
!if(!eq(s, 32), {1, 0},
!if(!eq(s, 64), {1, 1}, {?, ?}))));
}
Later, PR8330 is found to report not exactly the same bug relevant
issue to bit/bits values.
- Instead of resolving bit/bits values separately through
resolveBitReference(), this patch adds getBit() for all Inits and
resolves bit value by resolving plus getting the specified bit. This
unifies the resolving of bit with other values and removes redundant
logic for resolving bit only. In addition,
BitsInit::resolveReferences() is optimized to take advantage of this
origanization by resolving VarBitInit's variable reference first and
then getting bits from it.
- The type interference in '!if' operator is revised to support possible
combinations of int and bits/bit in MHS and RHS.
- As there may be illegal assignments from integer value to bit, says
assign 2 to a bit, but we only check this during instantiation in some
cases, e.g.
bit V = !if(!eq(x, 17), 0, 2);
Verbose diagnostic message is generated when invalid value is
resolveed to help locating the error.
- PR8330 is fixed as well.
llvm-svn: 163360
|
| |
|
|
|
|
|
| |
This Operand type takes a default argument, and is initialized to
this value if it does not appear in a patter.
llvm-svn: 163315
|
| |
|
|
|
|
|
|
| |
allocations (allocas). Allocas are known to be
disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics).
llvm-svn: 163299
|
| |
|
|
|
|
| |
the SubtargetInfoKV tables. Found by gcc48 -Wcast-qual.
llvm-svn: 163251
|