| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
for a single "m" constraint; this is wrong because the
opcode of a load or store would have to change in parallel.
This patch makes it always compute addresses into a register,
which is correct but not as efficient as possible. 7144566.
llvm-svn: 79292
|
| |
|
|
| |
llvm-svn: 79289
|
| |
|
|
| |
llvm-svn: 79257
|
| |
|
|
| |
llvm-svn: 79252
|
| |
|
|
|
|
| |
if not supported by the ELF subtarget.
llvm-svn: 79249
|
| |
|
|
| |
llvm-svn: 79235
|
| |
|
|
| |
llvm-svn: 79230
|
| |
|
|
| |
llvm-svn: 79226
|
| |
|
|
| |
llvm-svn: 79214
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unfoldable references to a PHI node in the block being folded, and disable
the transformation in that case. The correct transformation of such PHI
nodes depends on whether BB dominates Succ, and dominance is expensive
to compute here. (Alternatively, it's possible to check whether any
uses are live, but that's also essentially a dominance calculation.
Another alternative is to use reg2mem, but it probably isn't a good idea to
use that in simplifycfg.)
Also, remove some incorrect code from CanPropagatePredecessorsForPHIs
which is made unnecessary with this patch: it didn't consider the case
where a PHI node in BB has multiple uses.
llvm-svn: 79174
|
| |
|
|
| |
llvm-svn: 79140
|
| |
|
|
| |
llvm-svn: 79136
|
| |
|
|
| |
llvm-svn: 79135
|
| |
|
|
|
|
| |
blocks.
llvm-svn: 79132
|
| |
|
|
|
|
|
|
|
|
| |
support unaligned mem access only for certain types. (Should it be size
instead?)
ARM v7 supports unaligned access for i16 and i32, some v6 variants support it
as well.
llvm-svn: 79127
|
| |
|
|
| |
llvm-svn: 79123
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is legal for an inline asm operand to use an earlyclobber register if the
use operand is tied to the earlyclobber operand. The issue is discussed here:
http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html
We should perhaps let only the machine code verifier worry about these finer
details. EarlyClobber operands are not really interesting to the scavenger.
This fixes PR4528 for the third time.
llvm-svn: 79122
|
| |
|
|
| |
llvm-svn: 79118
|
| |
|
|
| |
llvm-svn: 79117
|
| |
|
|
| |
llvm-svn: 79116
|
| |
|
|
| |
llvm-svn: 79115
|
| |
|
|
| |
llvm-svn: 79114
|
| |
|
|
| |
llvm-svn: 79113
|
| |
|
|
| |
llvm-svn: 79112
|
| |
|
|
|
|
|
|
|
|
| |
In a naked function, the flag is never set and getPristineRegs() returns an
empty list. That means naked functions are able to clobber callee saved
registers, but that is the whole point of naked functions.
This fixes PR4716.
llvm-svn: 79096
|
| |
|
|
| |
llvm-svn: 79093
|
| |
|
|
| |
llvm-svn: 79092
|
| |
|
|
|
|
|
|
| |
In the included test case, a stack load was not included in DistanceMap. That
caused TransferDeadness to ignore the instruction, leading to a scavenger
assert.
llvm-svn: 79090
|
| |
|
|
| |
llvm-svn: 79086
|
| |
|
|
| |
llvm-svn: 79084
|
| |
|
|
|
|
|
|
| |
support for globals going into the appropriate sections with the flags.
This hopefully finishes unbreaking the previous behavior that I broke before.
llvm-svn: 79079
|
| |
|
|
|
|
|
| |
the register save area if %al is 0. This avoids touching xmm
regsiters when they aren't actually used.
llvm-svn: 79061
|
| |
|
|
|
|
| |
-disable-fp-elim.
llvm-svn: 79039
|
| |
|
|
|
|
|
| |
- We now print all of 403.gcc cleanly (llvm-mc -> 'as' as diffed to 'as'), minus two
'rep;movsl' instructions (which I missed before).
llvm-svn: 79031
|
| |
|
|
|
|
|
|
| |
symbol as the symbol name itself, not the expression it was defined to. These
have different semantics due to the quirky .set behavior (which absolutizes an
expression that would otherwise be treated as a relocation).
llvm-svn: 79025
|
| |
|
|
| |
llvm-svn: 79017
|
| |
|
|
| |
llvm-svn: 79014
|
| |
|
|
| |
llvm-svn: 79010
|
| |
|
|
| |
llvm-svn: 79009
|
| |
|
|
| |
llvm-svn: 79003
|
| |
|
|
|
|
|
|
|
|
|
| |
specific printer (this only works on x86, for now).
- This makes it possible to do some correctness checking of the parsing and
matching, since we can compare the results of 'as' on the original input, to
those of 'as' on the output from llvm-mc.
- In theory, we could now have an easy ATT -> Intel syntax converter. :)
llvm-svn: 78986
|
| |
|
|
| |
llvm-svn: 78970
|
| |
|
|
| |
llvm-svn: 78961
|
| |
|
|
|
|
| |
must be emitted for PowerPC-Linux '.bss' section
llvm-svn: 78958
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
x86_64-apple-darwin10.
--- Reverse-merging r78895 into '.':
U test/CodeGen/PowerPC/2008-12-12-EH.ll
U lib/Target/DarwinTargetAsmInfo.cpp
--- Reverse-merging r78892 into '.':
U include/llvm/Target/DarwinTargetAsmInfo.h
U lib/Target/X86/X86TargetAsmInfo.cpp
U lib/Target/X86/X86TargetAsmInfo.h
U lib/Target/ARM/ARMTargetAsmInfo.h
U lib/Target/ARM/ARMTargetMachine.cpp
U lib/Target/ARM/ARMTargetAsmInfo.cpp
U lib/Target/PowerPC/PPCTargetAsmInfo.cpp
U lib/Target/PowerPC/PPCTargetAsmInfo.h
U lib/Target/PowerPC/PPCTargetMachine.cpp
G lib/Target/DarwinTargetAsmInfo.cpp
llvm-svn: 78919
|
| |
|
|
|
|
|
| |
implemented somewhat differently than before, but it should have
the same functionality and the previous testcase passes again.
llvm-svn: 78900
|
| |
|
|
| |
llvm-svn: 78898
|
| |
|
|
| |
llvm-svn: 78895
|
| |
|
|
| |
llvm-svn: 78893
|
| |
|
|
|
|
|
| |
the new load by the old load instead of by the extract element because
a store could have occurred between the load and extract element.
llvm-svn: 78891
|