| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 155075
|
|
|
|
| |
llvm-svn: 154951
|
|
|
|
| |
llvm-svn: 154881
|
|
|
|
| |
llvm-svn: 154532
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 152840
|
|
|
|
|
|
|
| |
We currently assume that all targets have less than 64k opcodes. We
shouldn't limit it further.
llvm-svn: 152833
|
|
|
|
|
|
|
|
| |
We cannot limit the concatenated instruction names to 64K. ARM is
already at 32K, and it is easy to imagine a target with more
instructions.
llvm-svn: 152817
|
|
|
|
|
|
|
| |
Original commit message:
Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable.
llvm-svn: 152296
|
|
|
|
|
|
|
|
|
|
| |
Original commit message:
Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect
all 16-bit string table offsets. Also make sure the string to offset table
string is not larger than 65536 characters since larger string literals aren't
portable.
llvm-svn: 152233
|
|
|
|
|
|
| |
protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable.
llvm-svn: 152202
|
|
|
|
| |
llvm-svn: 151986
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Shrink the opcode field to 16 bits.
- Shrink the AsmVariantID field to 8 bits.
- Store the mnemonic string in a string table, store a 16 bit index.
- Store a pascal-style length byte in the string instead of a null terminator,
so we can avoid calling strlen on every entry we visit during mnemonic search.
Shrinks X86AsmParser.o from 434k to 201k on x86_64 and eliminates relocs from the table.
llvm-svn: 151984
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 151760.
We want to move getSubReg() from TargetRegisterInfo into MCRegisterInfo,
but to do that, the type of the lookup table needs to be the same for
all targets.
llvm-svn: 151814
|
|
|
|
|
|
| |
Doesn't help ARM with its massive register set, but halves the size on x86 and all other targets.
llvm-svn: 151760
|
|
|
|
| |
llvm-svn: 149814
|
|
|
|
| |
llvm-svn: 148856
|
|
|
|
| |
llvm-svn: 148316
|
|
|
|
| |
llvm-svn: 147858
|
|
|
|
| |
llvm-svn: 147855
|
|
|
|
| |
llvm-svn: 147802
|
|
|
|
|
|
|
| |
AsmParser holds info specific to target parser.
AsmParserVariant holds info specific to asm variants supported by the target.
llvm-svn: 147787
|
|
|
|
|
|
| |
Store AsmParser info locally. A small step towards emitting match entries for multiple asm variants.
llvm-svn: 147710
|
|
|
|
| |
llvm-svn: 147708
|
|
|
|
| |
llvm-svn: 147583
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example, ARM allows:
vmov.u32 s4, #0 -> vmov.i32, #0
'u32' is a more specific designator for the 32-bit integer type specifier
and is legal for any instruction which accepts 'i32' as a datatype suffix.
We want to say,
def : TokenAlias<".u32", ".i32">;
This works by marking the match class of 'From' as a subclass of the
match class of 'To'.
rdar://10435076
llvm-svn: 145992
|
|
|
|
| |
llvm-svn: 145974
|
|
|
|
| |
llvm-svn: 145535
|
|
|
|
|
|
|
|
|
| |
For example,
On ARM, "mov r3, #-3" is an alias for "mvn r3, #2", so we want to use a
matcher pattern that handles the bitwise negation when mapping to t2MVNi.
llvm-svn: 143233
|
|
|
|
|
|
| |
Shaves 200k off Release-Asserts clang binaries on i386.
llvm-svn: 142191
|
|
|
|
|
|
|
|
| |
When TableGen starts creating its own register classes, the synthesized
classes won't have a Record reference. All register classes must have a
name, though.
llvm-svn: 141081
|
|
|
|
|
|
| |
This is the first step towards splitting LLVM and Clang's tblgen executables.
llvm-svn: 140951
|
|
|
|
|
|
|
| |
This makes it possible to allocate CodeGenRegisterClass instances
dynamically and reorder them.
llvm-svn: 140816
|
|
|
|
| |
llvm-svn: 137742
|
|
|
|
|
|
|
|
| |
Allow a target assembly parser to do context sensitive constraint checking
on a potential instruction match. This will be used, for example, to handle
Thumb2 IT block parsing.
llvm-svn: 137675
|
|
|
|
|
|
|
| |
No need for it to be redefined as part of every derived target asm parser
class.
llvm-svn: 137649
|
|
|
|
|
|
| |
Remove const qualifiers from Init references, per Chris' request.
llvm-svn: 136531
|
|
|
|
|
|
|
| |
Make references to Inits const everywhere. This is the final step
before making them unique.
llvm-svn: 136485
|
|
|
|
|
|
| |
MCTargetAsmLexer; rename createAsmLexer to createMCAsmLexer and createAsmParser to createMCAsmParser.
llvm-svn: 136027
|
|
|
|
|
|
| |
match class.
llvm-svn: 135287
|
|
|
|
|
|
| |
in multiple buildbots.
llvm-svn: 134936
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Manage Inits in a FoldingSet. This provides several benefits:
- Memory for Inits is properly managed
- Duplicate Inits are folded into Flyweights, saving memory
- It enforces const-correctness, protecting against certain classes
of bugs
The above benefits allow Inits to be used in more contexts, which in
turn provides more dynamism to TableGen. This enhanced capability
will be used by the AVX code generator to a fold common patterns
together.
llvm-svn: 134907
|
|
|
|
| |
llvm-svn: 134725
|
|
|
|
| |
llvm-svn: 134709
|
|
|
|
|
|
|
|
|
|
| |
- Each target asm parser now creates its own MCSubtatgetInfo (if needed).
- Changed AssemblerPredicate to take subtarget features which tablegen uses
to generate asm matcher subtarget feature queries. e.g.
"ModeThumb,FeatureThumb2" is translated to
"(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0".
llvm-svn: 134678
|
|
|
|
|
|
|
|
| |
operands are logically equivalent to existing registers, but happen to be printed specially. For example, an instruciton that prints d0[0] instead of s0.
Patch by Jim Grosbach.
llvm-svn: 133940
|
|
|
|
|
|
|
| |
TableGen had diagnostic printers sprinkled about in a few places. Pull them
together into a single location in Error.cpp.
llvm-svn: 133568
|
|
|
|
|
|
|
| |
Reuse the CodeGenRegBank DenseMap in a few places that would build their
own or use linear search.
llvm-svn: 133333
|