| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 162515
|
| |
|
|
| |
llvm-svn: 162514
|
| |
|
|
|
|
| |
No test case, this is a generalization of r160260.
llvm-svn: 162485
|
| |
|
|
| |
llvm-svn: 162454
|
| |
|
|
|
|
| |
common function call.
llvm-svn: 162428
|
| |
|
|
| |
llvm-svn: 162426
|
| |
|
|
|
|
|
|
|
|
| |
the temporary register that was used to load the immediate. Currently, it always
returns register $at, but this will change if, in the future, we decide to use
another register.
No changes in functionality.
llvm-svn: 162417
|
| |
|
|
|
|
|
|
| |
Mips16RegisterInfo/MipsSERegisterInfo.
No changes in functionality.
llvm-svn: 162413
|
| |
|
|
|
|
|
|
|
|
|
| |
Assertion failed: (Start.isValid() == End.isValid() && "Start and end should
either both be valid or both be invalid!")
when parsing inline asm. SMLoc assumes that the first char * in the source is
invalid. However, when parsing an inline asm the mnemonic is at this location.
I don't want to change SMLoc, so use a trivial workaround.
llvm-svn: 162381
|
| |
|
|
| |
llvm-svn: 162362
|
| |
|
|
|
|
| |
did getFunction()->getName(). Remove includes of Function.h that are no longer needed.
llvm-svn: 162347
|
| |
|
|
|
|
| |
for loop over operands to use unsigned instead of int.
llvm-svn: 162344
|
| |
|
|
| |
llvm-svn: 162342
|
| |
|
|
|
|
|
|
| |
to prevent it from being clobbered. mips uses $gp to access small data section.
This bug was originally reported by Carl Norum.
llvm-svn: 162340
|
| |
|
|
|
|
|
|
| |
default.
Patch by Carl Norum.
llvm-svn: 162339
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
within the codegen EK_GPRel64BlockAddress. This was not
supported for direct object output and resulted in an assertion.
This change adds support for EK_GPRel64BlockAddress for
direct object.
One fallout from this is to turn on rela relocations
for mips64 to match gas.
llvm-svn: 162334
|
| |
|
|
|
|
| |
Patch by Weiming Zhao <weimingz@codeaurora.org>.
llvm-svn: 162329
|
| |
|
|
|
|
|
| |
no cost to using memcpy here: the fixed code is optimized by LLVM to perfect
machine code.
llvm-svn: 162311
|
| |
|
|
| |
llvm-svn: 162306
|
| |
|
|
|
|
|
|
|
| |
this is the index of the operand that failed to match.
Note: This may cause a buildbot failure due to an API mismatch in clang. Should
recover with my next commit to clang.
llvm-svn: 162295
|
| |
|
|
| |
llvm-svn: 162270
|
| |
|
|
| |
llvm-svn: 162267
|
| |
|
|
| |
llvm-svn: 162264
|
| |
|
|
| |
llvm-svn: 162263
|
| |
|
|
|
|
| |
switch. Condense code a bit. No functional change.
llvm-svn: 162261
|
| |
|
|
|
|
| |
forms.
llvm-svn: 162260
|
| |
|
|
|
|
| |
null_frag.
llvm-svn: 162257
|
| |
|
|
|
|
|
|
|
|
| |
*** Bad machine code: Explicit definition marked as use ***
- function: test_cos
- basic block: BB#0 L.entry (0x7ff2a2024fd0)
- instruction: VSETLNi32 %D11, %D11<undef>, %R0, 0, pred:14, pred:%noreg, %Q5<imp-use,kill>, %Q5<imp-def>
- operand 0: %D11
llvm-svn: 162247
|
| |
|
|
|
|
|
| |
The test case ARM/2011-05-04-MultipleLandingPadSuccs.ll was creating
duplicate successor list entries.
llvm-svn: 162222
|
| |
|
|
| |
llvm-svn: 162217
|
| |
|
|
| |
llvm-svn: 162214
|
| |
|
|
|
|
| |
Patch by Petar Jovanovic.
llvm-svn: 162213
|
| |
|
|
| |
llvm-svn: 162194
|
| |
|
|
| |
llvm-svn: 162193
|
| |
|
|
| |
llvm-svn: 162192
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
this allows for better code generation.
Added a new DAGCombine transformation to convert FMAX and FMIN to FMANC and
FMINC, which are commutative.
For example:
movaps %xmm0, %xmm1
movsd LC(%rip), %xmm0
minsd %xmm1, %xmm0
becomes:
minsd LC(%rip), %xmm0
llvm-svn: 162187
|
| |
|
|
| |
llvm-svn: 162186
|
| |
|
|
|
|
|
| |
These nodes are no longer needed because the peephole pass can fold
CMOV+AND into ANDCC etc.
llvm-svn: 162179
|
| |
|
|
|
|
| |
class, but the base class methods aren't virtual so it just increased call overhead.
llvm-svn: 162178
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This turns common i1 patterns into predicated instructions:
(add (zext cc), x) -> (select cc (add x, 1), x)
(add (sext cc), x) -> (select cc (add x, -1), x)
For a function like:
unsigned f(unsigned s, int x) {
return s + (x>0);
}
We now produce:
cmp r1, #0
it gt
addgt.w r0, r0, #1
Instead of:
movs r2, #0
cmp r1, #0
it gt
movgt r2, #1
add r0, r2
llvm-svn: 162177
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add these transformations to the existing add/sub ones:
(and (select cc, -1, c), x) -> (select cc, x, (and, x, c))
(or (select cc, 0, c), x) -> (select cc, x, (or, x, c))
(xor (select cc, 0, c), x) -> (select cc, x, (xor, x, c))
The selects can then be transformed to a single predicated instruction
by peephole.
This transformation will make it possible to eliminate the ISD::CAND,
COR, and CXOR custom DAG nodes.
llvm-svn: 162176
|
| |
|
|
|
|
| |
better compare/branch code.
llvm-svn: 162172
|
| |
|
|
|
|
| |
Make sure the generic pattern is used.
llvm-svn: 162170
|
| |
|
|
|
|
| |
functional change intended.
llvm-svn: 162166
|
| |
|
|
| |
llvm-svn: 162165
|
| |
|
|
| |
llvm-svn: 162164
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
arithmetic instructions. However, when small data types are used, a truncate
node appears between the SETCC node and the arithmetic operation. This patch
adds support for this pattern.
Before:
xorl %esi, %edi
testb %dil, %dil
setne %al
ret
After:
xorb %dil, %sil
setne %al
ret
rdar://12081007
llvm-svn: 162160
|
| |
|
|
| |
llvm-svn: 162136
|
| |
|
|
|
|
|
|
|
|
| |
No new tests are added.
All tests in ExecutionEngine/MCJIT that have been failing pass after this patch
is applied (when "make check" is done on a mips board).
Patch by Petar Jovanovic.
llvm-svn: 162135
|
| |
|
|
|
|
|
|
|
| |
PEI can't handle the pseudo-instructions. This can be removed when the
pseudo-instructions are replaced by normal predicated instructions.
Fixes PR13628.
llvm-svn: 162130
|