| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
breaker needs to check all definitions of the antidepenent register to
avoid multiple defs of the same new register.
llvm-svn: 118032
|
| |
|
|
|
|
|
|
| |
PR 8522 / 8616046. Test reduction, analysis and patch by Tim Deegan!
(However, review by someone who understands the classes here better
is welcome. John Krum will return!)
llvm-svn: 118030
|
| |
|
|
| |
llvm-svn: 118029
|
| |
|
|
| |
llvm-svn: 118027
|
| |
|
|
|
|
| |
assumptions about stack layout. Specifically, LR must be saved next to FP.
llvm-svn: 118026
|
| |
|
|
| |
llvm-svn: 118023
|
| |
|
|
|
|
| |
index before giving up.
llvm-svn: 118022
|
| |
|
|
|
|
| |
parameter.
llvm-svn: 118020
|
| |
|
|
| |
llvm-svn: 117997
|
| |
|
|
|
|
| |
handling those cases for now.
llvm-svn: 117996
|
| |
|
|
| |
llvm-svn: 117995
|
| |
|
|
|
|
| |
to what someone would need to do to support thumb1.
llvm-svn: 117994
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BB#1: derived from LLVM BB %bb.nph28
Live Ins: %AL
Predecessors according to CFG: BB#0
TEST8rr %reg16384<kill>, %reg16384, %EFLAGS<imp-def>; GR8:%reg16384
JNE_4 <BB#2>, %EFLAGS<imp-use,kill>
JMP_4 <BB#2>
Successors according to CFG: BB#2 BB#2
These double CFG edges only ever occur in bugpoint-generated code, so there is
no need to attempt something clever.
llvm-svn: 117992
|
| |
|
|
|
|
|
|
| |
which we can't test
since we can neither generate nor parse them at the moment.
llvm-svn: 117988
|
| |
|
|
| |
llvm-svn: 117986
|
| |
|
|
| |
llvm-svn: 117984
|
| |
|
|
|
|
| |
edges on demand.
llvm-svn: 117982
|
| |
|
|
|
|
|
| |
It is legal for an instruction to have two operands using the same register,
only one a kill. This is interpreted as a kill.
llvm-svn: 117981
|
| |
|
|
|
|
|
|
|
|
|
|
| |
source, and let rewrite() clean it up.
This way, kill flags on the inserted copies are fixed as well during rewrite().
We can't just assume that all the copies we insert are going to be kills since
critical edges into loop headers sometimes require both source and dest to be
live out of a block.
llvm-svn: 117980
|
| |
|
|
|
|
| |
for handling the fixup necessary.
llvm-svn: 117978
|
| |
|
|
| |
llvm-svn: 117977
|
| |
|
|
|
|
| |
This is another part of the fix for Radar 8599955.
llvm-svn: 117976
|
| |
|
|
| |
llvm-svn: 117971
|
| |
|
|
| |
llvm-svn: 117969
|
| |
|
|
| |
llvm-svn: 117967
|
| |
|
|
| |
llvm-svn: 117964
|
| |
|
|
|
|
|
|
| |
At least X86FloatingPoint requires correct kill flags after register allocation,
and targets using register scavenging benefit. Conservative kill flags are not
enough.
llvm-svn: 117960
|
| |
|
|
| |
llvm-svn: 117959
|
| |
|
|
| |
llvm-svn: 117956
|
| |
|
|
|
|
|
|
| |
will BECOME the low
bits are zero, not that the current low bits are zero. Fixes <rdar://problem/8606771>.
llvm-svn: 117953
|
| |
|
|
|
|
| |
from X86AsmParser.cpp
llvm-svn: 117952
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
at more than those which define CPSR. You can have this situation:
(1) subs ...
(2) sub r6, r5, r4
(3) movge ...
(4) cmp r6, 0
(5) movge ...
We cannot convert (2) to "subs" because (3) is using the CPSR set by
(1). There's an analogous situation here:
(1) sub r1, r2, r3
(2) sub r4, r5, r6
(3) cmp r4, ...
(5) movge ...
(6) cmp r1, ...
(7) movge ...
We cannot convert (1) to "subs" because of the intervening use of CPSR.
llvm-svn: 117950
|
| |
|
|
|
|
| |
give them individual stack slots once the are actually spilled.
llvm-svn: 117945
|
| |
|
|
|
|
|
| |
When an instruction refers to a spill slot with a LiveStacks entry, check that
the spill slot is live at the instruction.
llvm-svn: 117944
|
| |
|
|
| |
llvm-svn: 117940
|
| |
|
|
| |
llvm-svn: 117936
|
| |
|
|
|
|
|
| |
codegen using the patterns; the latter gates the assembler recognizing the
instruction.
llvm-svn: 117931
|
| |
|
|
| |
llvm-svn: 117930
|
| |
|
|
| |
llvm-svn: 117929
|
| |
|
|
| |
llvm-svn: 117927
|
| |
|
|
| |
llvm-svn: 117925
|
| |
|
|
|
|
| |
patterns as such
llvm-svn: 117923
|
| |
|
|
| |
llvm-svn: 117922
|
| |
|
|
| |
llvm-svn: 117911
|
| |
|
|
|
|
|
| |
*_Encode classes. These instructions are the only ones which use those classes,
so a subclass isn't necessary.
llvm-svn: 117906
|
| |
|
|
| |
llvm-svn: 117904
|
| |
|
|
|
|
| |
must be 8 bits. Support this memory form.
llvm-svn: 117902
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
aliases installed and working. They now work when the
matched pattern and the result instruction have exactly
the same operand list.
This is now enough for us to define proper aliases for
movzx and movsx, implementing rdar://8017633 and PR7459.
Note that we do not accept instructions like:
movzx 0(%rsp), %rsi
GAS accepts this instruction, but it doesn't make any
sense because we don't know the size of the memory
operand. It could be 8/16/32 bits.
llvm-svn: 117901
|
| |
|
|
|
|
|
| |
in their asmstring. Fix the two x86 "NOREX" instructions that have them.
If these comments are important, the instlowering stuff can print them.
llvm-svn: 117897
|
| |
|
|
|
|
|
| |
various X86 and ARM instructions that are bitten by this as isCodeGenOnly,
as they are.
llvm-svn: 117884
|