| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
is the best we can do for these patterns. This fix PR10554.
llvm-svn: 137161
|
| |
|
|
| |
llvm-svn: 137160
|
| |
|
|
|
|
|
| |
functionality since in the C api a pass is created and added to a pass
manager in a single call.
llvm-svn: 137159
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assigned symbol addresses get truncated to 32-bits, even on 64-bit platforms.
That's obviously bogus.
For example,
.globl _foo
.equ _foo, 0x987654321ULL
rdar://9922863
llvm-svn: 137158
|
| |
|
|
|
|
| |
Not sure about BLXi, but this is what the old disassembler did.
llvm-svn: 137156
|
| |
|
|
| |
llvm-svn: 137154
|
| |
|
|
| |
llvm-svn: 137153
|
| |
|
|
|
|
| |
instruction so target specific analysis isn't needed anymore.
llvm-svn: 137151
|
| |
|
|
| |
llvm-svn: 137150
|
| |
|
|
|
|
| |
rdar://9915869
llvm-svn: 137148
|
| |
|
|
| |
llvm-svn: 137147
|
| |
|
|
| |
llvm-svn: 137146
|
| |
|
|
|
|
|
|
|
|
| |
FixedLenDecoderEmitter.
This new disassembler can correctly decode all the testcases that the old one did, though
some "expected failure" testcases are XFAIL'd for now because it is not (yet) as strict in
operand checking as the old one was.
llvm-svn: 137144
|
| |
|
|
| |
llvm-svn: 137137
|
| |
|
|
| |
llvm-svn: 137135
|
| |
|
|
|
|
|
| |
'static' variable will be emitted twice.
PR10081
llvm-svn: 137134
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coalescing can remove copy-like instructions with sub-register operands
that constrained the register class. Examples are:
x86: GR32_ABCD:sub_8bit_hi -> GR32
arm: DPR_VFP2:ssub0 -> DPR
Recompute the register class of any virtual registers that are used by
less instructions after coalescing.
This affects code generation for the Cortex-A8 where we use NEON
instructions for f32 operations, c.f. fp_convert.ll:
vadd.f32 d16, d1, d0
vcvt.s32.f32 d0, d16
The register allocator is now free to use d16 for the temporary, and
that comes first in the allocation order because it doesn't interfere
with any s-registers.
llvm-svn: 137133
|
| |
|
|
|
|
|
| |
v4f64 = sitofp v4i32. This fix PR10559.
Also add support for v4i32 = fptosi v4f64.
llvm-svn: 137128
|
| |
|
|
| |
llvm-svn: 137127
|
| |
|
|
|
|
| |
- Calls are supported on SM 2.0+ for function with no return values
llvm-svn: 137125
|
| |
|
|
|
|
|
|
| |
This function doesn't have anything to do with spill weights, and MRI
already has functions for manipulating the register class of a virtual
register.
llvm-svn: 137123
|
| |
|
|
| |
llvm-svn: 137115
|
| |
|
|
| |
llvm-svn: 137114
|
| |
|
|
|
|
|
|
| |
When this variable is set, "uname -r" will return its value instead of the
real OS version. Make this affect LLVM's triple for consistency.
<rdar://problem/9919167>
llvm-svn: 137111
|
| |
|
|
|
|
| |
and avoid further confusion.
llvm-svn: 137106
|
| |
|
|
| |
llvm-svn: 137105
|
| |
|
|
| |
llvm-svn: 137104
|
| |
|
|
|
|
|
| |
the patterns already there to be more strict regarding the predicate.
This fixes PR10558
llvm-svn: 137100
|
| |
|
|
|
|
| |
instead of a vector.
llvm-svn: 137099
|
| |
|
|
|
|
|
|
|
| |
The 'unwind' instruction was acting essentially as a placeholder, because it
would be replaced at the end of this function by a branch to the "unwind
handler". The 'unwind' instruction is going away, so use 'unreachable' instead,
which serves the same purpose as a placeholder.
llvm-svn: 137098
|
| |
|
|
| |
llvm-svn: 137096
|
| |
|
|
| |
llvm-svn: 137095
|
| |
|
|
|
|
| |
No functional change.
llvm-svn: 137094
|
| |
|
|
| |
llvm-svn: 137091
|
| |
|
|
| |
llvm-svn: 137090
|
| |
|
|
|
|
| |
RegisterCoalescer.h still has the CoalescerPair class interface.
llvm-svn: 137088
|
| |
|
|
|
|
|
| |
A public interface is no longer needed since RegisterCoalescer is not an
analysis any more.
llvm-svn: 137082
|
| |
|
|
|
|
|
| |
Fix the instruction representation to correctly only allow post-indexed form.
Add tests.
llvm-svn: 137074
|
| |
|
|
| |
llvm-svn: 137073
|
| |
|
|
|
|
| |
Patch by Jingyue!
llvm-svn: 137072
|
| |
|
|
|
|
| |
They improve the verbose assembly.
llvm-svn: 137069
|
| |
|
|
| |
llvm-svn: 137067
|
| |
|
|
|
|
|
| |
Allow labels for load/store instructions when parsing. There's encoding
issues, still, so this doesn't work all the way through, yet.
llvm-svn: 137064
|
| |
|
|
|
|
|
| |
These the methods are target-independent since they simply scan the
memory operands. They can live in TargetInstrInfoImpl.
llvm-svn: 137063
|
| |
|
|
|
|
| |
range 1-32, with 32 encoded as 0.
llvm-svn: 137062
|
| |
|
|
|
|
| |
correctly active without HasT2ExtractPack. PR10611.
llvm-svn: 137061
|
| |
|
|
| |
llvm-svn: 137060
|
| |
|
|
|
|
|
|
|
| |
of MCInstrDescs functions.
- Add overrides for ARM.
- Teach llvm-objdump to use this instead of plain MCInstrDesc.
llvm-svn: 137059
|
| |
|
|
| |
llvm-svn: 137056
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
X86FloatingPoint keeps track of pending ST registers for an upcoming
inline asm instruction with fixed stack register constraints. It does
this by remembering which FP register holds the value that should appear
at a fixed stack position for the inline asm.
When that FP register is killed before the inline asm, make sure to
duplicate it to a scratch register, so the ST register still has a live
FP reference.
This could happen when the same FP register was copied to two ST
registers, or when a spill instruction is inserted between the ST copy
and the inline asm.
This fixes PR10602.
llvm-svn: 137050
|