| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 130092
|
|
|
|
| |
llvm-svn: 130068
|
|
|
|
|
|
|
|
|
|
| |
should
print out ldr, not ldr.n.
rdar://problem/9267772
llvm-svn: 130008
|
|
|
|
|
|
|
| |
This is needed so the front-end can see "aligned" attributes on the type
for the pointer arguments. Radar 9311427.
llvm-svn: 129964
|
|
|
|
|
|
|
| |
These values were not used for anything. Spill size and alignment is a property
of the register class, not the register.
llvm-svn: 129906
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On the x86-64 and thumb2 targets, some registers are more expensive to encode
than others in the same register class.
Add a CostPerUse field to the TableGen register description, and make it
available from TRI->getCostPerUse. This represents the cost of a REX prefix or a
32-bit instruction encoding required by choosing a high register.
Teach the greedy register allocator to prefer cheap registers for busy live
ranges (as indicated by spill weight).
llvm-svn: 129864
|
|
|
|
|
|
| |
true on success and false on failure. Update callers.
llvm-svn: 129722
|
|
|
|
|
|
| |
symbolic disassembly.
llvm-svn: 129708
|
|
|
|
|
|
|
|
| |
the generated FastISel. X86 doesn't need to generate code to match ADD16ri8
since ADD16ri will do just fine. This is a small codesize win in the generated
instruction selector.
llvm-svn: 129692
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
immediates with
value constraints on them (when defined as ImmLeaf's). This is particularly important
for X86-64, where almost all reg/imm instructions take a i64immSExt32 immediate operand,
which has a value constraint. Before this patch we ended up iseling the examples into
such amazing code as:
movabsq $7, %rax
imulq %rax, %rdi
movq %rdi, %rax
ret
now we produce:
imulq $7, %rdi, %rax
ret
This dramatically shrinks the generated code at -O0 on x86-64.
llvm-svn: 129691
|
|
|
|
|
|
|
|
| |
little wrapper.
No functionality change.
llvm-svn: 129680
|
|
|
|
|
|
| |
since the strings are always exactly one character, and there are usually only 2-3 operands.
llvm-svn: 129678
|
|
|
|
|
|
| |
matching code.
llvm-svn: 129677
|
|
|
|
|
|
|
|
|
| |
kind of predicate: one that is specific to imm nodes. The predicate function
specified here just checks an int64_t directly instead of messing around with
SDNode's. The virtue of this is that it means that fastisel and other things
can reason about these predicates.
llvm-svn: 129675
|
|
|
|
|
|
|
|
| |
structure and fix some fixmes. We now have a TreePredicateFn class
that handles all of the decoding of these things. This is an internal
cleanup that has no impact on the code generated by tblgen.
llvm-svn: 129670
|
|
|
|
| |
llvm-svn: 129668
|
|
|
|
|
|
|
|
|
|
| |
2. implement rdar://9289501 - fast isel should fold trivial multiplies to shifts
3. teach tblgen to handle shift immediates that are different sizes than the
shifted operands, eliminating some code from the X86 fast isel backend.
4. Have FastISel::SelectBinaryOp use (the poorly named) FastEmit_ri_ function
instead of FastEmit_ri to simplify code.
llvm-svn: 129666
|
|
|
|
|
|
| |
Monrocq
llvm-svn: 129613
|
|
|
|
|
|
| |
targets are getting very close to 32 subtarget features. Also teach tablegen to error when there are more than 64 features to guard against undefined behavior. rdar://9282332
llvm-svn: 129590
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
|
|
| |
the alias".
llvm-svn: 129485
|
|
|
|
|
|
| |
rdar://problem/9267838
llvm-svn: 129320
|
|
|
|
|
|
|
|
| |
may be used instead of RecordSet.
The result of DeclNodes.inc was unstable on msys, Windows 7 x64.
llvm-svn: 129317
|
|
|
|
| |
llvm-svn: 129124
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with the newer, cleaner model. It uses the IAPrinter class to hold the
information that is needed to match an instruction with its alias. This also
takes into account the available features of the platform.
There is one bit of ugliness. The way the logic determines if a pattern is
unique is O(N**2), which is gross. But in reality, the number of items it's
checking against isn't large. So while it's N**2, it shouldn't be a massive time
sink.
llvm-svn: 129110
|
|
|
|
| |
llvm-svn: 128826
|
|
|
|
| |
llvm-svn: 128823
|
|
|
|
| |
llvm-svn: 128818
|
|
|
|
| |
llvm-svn: 128735
|
|
|
|
|
|
| |
with something meaningful. I want to be able to read and debug the generated tables.
llvm-svn: 128703
|
|
|
|
| |
llvm-svn: 128701
|
|
|
|
| |
llvm-svn: 128591
|
|
|
|
| |
llvm-svn: 128515
|
|
|
|
| |
llvm-svn: 128497
|
|
|
|
|
|
|
| |
- Also emit a list of packages and groups sorted by name
- Avoid iterating over DenseSet so that the output of the arrays is deterministic.
llvm-svn: 128489
|
|
|
|
|
|
| |
which all its checkers will go into the group.
llvm-svn: 128474
|
|
|
|
| |
llvm-svn: 128330
|
|
|
|
|
|
| |
instructions, and add a test case for that.
llvm-svn: 128249
|
|
|
|
|
|
|
|
|
| |
stale since
the change to ("tLDMIA", "tLDMIA_UPD"). Update the conflict resolution code and add
test cases for that.
llvm-svn: 128247
|
|
|
|
|
|
|
| |
According to A8.6.189 STM/STMIA/STMEA (Encoding T1), there's only tSTMIA_UPD available.
Ignore tSTMIA for the decoder emitter and add a test case for that.
llvm-svn: 128246
|
|
|
|
| |
llvm-svn: 128236
|
|
|
|
|
|
|
|
|
| |
was fooled.
Set the encoding bits to {0,?,?,0}, not 0. Plus delegate the disassembly of ADR to
the more generic ADDri/SUBri instructions, and add a test case for that.
llvm-svn: 128234
|
|
|
|
|
|
|
| |
kind, and fix serialization/deserialization of IdentifierInfo
attributes. These are requires for the new 'availability' attribute.
llvm-svn: 128130
|
|
|
|
| |
llvm-svn: 128020
|
|
|
|
|
|
|
| |
code below it. Even though it looks very similar, it will match more precisely
and geneate better functions in the long run.
llvm-svn: 127991
|
|
|
|
|
|
|
| |
This is a helper class that will make it easier to say which InstAliases can be
printed and which cannot (because of ambiguity).
llvm-svn: 127990
|
|
|
|
|
|
| |
* Move the code that emits the reg in reg class matching into its own function.
llvm-svn: 127988
|
|
|
|
| |
llvm-svn: 127888
|
|
|
|
|
|
|
| |
nothing more than a bitcast.
- Teach tablegen to automatically infer "Bitcast" property.
llvm-svn: 127667
|
|
|
|
|
|
|
|
|
| |
instruction set. This code adds support for the VEX prefix
and for the YMM registers accessible on AVX-enabled
architectures. Instruction table support that enables AVX
instructions for the disassembler is in an upcoming patch.
llvm-svn: 127644
|