| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 48196
|
| |
|
|
| |
llvm-svn: 48195
|
| |
|
|
| |
llvm-svn: 48194
|
| |
|
|
| |
llvm-svn: 48193
|
| |
|
|
|
|
| |
can be live out of the block anyway, so it isn't needed.
llvm-svn: 48192
|
| |
|
|
| |
llvm-svn: 48189
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
local object of >16 byte alignment exists. It does not
work and getting it to work is not trivial, as explained
in the comment. This fixes all the remaining ppc32
failures in the struct-layout-1 part of the gcc testsuite.
(gcc does not support this either, and the only way to
get such an object is with __attribute__((aligned)) or
generic vectors; it can't be done in a standard-conforming
program, or with Altivec. So I think disabling it is OK.)
llvm-svn: 48188
|
| |
|
|
|
|
| |
scavenging for 32-bit and 64-bit separately.
llvm-svn: 48186
|
| |
|
|
| |
llvm-svn: 48184
|
| |
|
|
| |
llvm-svn: 48183
|
| |
|
|
| |
llvm-svn: 48182
|
| |
|
|
|
|
| |
alias destination only if we don't have anything to link to
llvm-svn: 48181
|
| |
|
|
| |
llvm-svn: 48180
|
| |
|
|
| |
llvm-svn: 48179
|
| |
|
|
| |
llvm-svn: 48177
|
| |
|
|
| |
llvm-svn: 48176
|
| |
|
|
| |
llvm-svn: 48175
|
| |
|
|
|
|
| |
copyfromreg/copytoreg instead.
llvm-svn: 48174
|
| |
|
|
|
|
|
| |
zero extension when checking if an unsigned multiply is
safe.
llvm-svn: 48171
|
| |
|
|
| |
llvm-svn: 48170
|
| |
|
|
| |
llvm-svn: 48169
|
| |
|
|
| |
llvm-svn: 48167
|
| |
|
|
| |
llvm-svn: 48166
|
| |
|
|
|
|
| |
has single return value.
llvm-svn: 48162
|
| |
|
|
| |
llvm-svn: 48161
|
| |
|
|
| |
llvm-svn: 48160
|
| |
|
|
| |
llvm-svn: 48158
|
| |
|
|
| |
llvm-svn: 48152
|
| |
|
|
| |
llvm-svn: 48151
|
| |
|
|
|
|
|
|
| |
return ValueType can depend its operands' ValueType.
This is a cosmetic change, no functionality impacted.
llvm-svn: 48145
|
| |
|
|
| |
llvm-svn: 48143
|
| |
|
|
| |
llvm-svn: 48142
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the source is defined; BLR is the live range which is defined by the copy.
If ALR and BLR overlaps and end of BLR extends beyond end of ALR, e.g.
A = or A, B
...
B = A
...
C = A<kill>
...
= B
then do not add kills of A to the newly created B interval.
- Also fix some kill info update bug.
llvm-svn: 48141
|
| |
|
|
| |
llvm-svn: 48140
|
| |
|
|
|
|
| |
things happier down the road.
llvm-svn: 48138
|
| |
|
|
|
|
| |
(e.g. v8i16 on x86) after legalizer. Instruction selection does not expect to see them. In all likelihood this can only be an issue in a bugpoint reduced test case.
llvm-svn: 48136
|
| |
|
|
|
|
|
| |
Change insert/extract subreg instructions to be able to be used in TableGen patterns.
Use the above features to reimplement an x86-64 pseudo instruction as a pattern.
llvm-svn: 48130
|
| |
|
|
| |
llvm-svn: 48128
|
| |
|
|
| |
llvm-svn: 48123
|
| |
|
|
|
|
|
|
|
|
| |
field to 32 bits, thus enabling correct handling of ByVal
structs bigger than 0x1ffff. Abstract interface a bit.
Fixes gcc.c-torture/execute/pr23135.c and
gcc.c-torture/execute/pr28982b.c in gcc testsuite (were ICE'ing
on ppc32, quietly producing wrong code on x86-32.)
llvm-svn: 48122
|
| |
|
|
|
|
|
|
| |
two regression tests:
test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert.ll
test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert2.ll
llvm-svn: 48120
|
| |
|
|
|
|
| |
different regclasses, and the code is not consistent when it comes to value tracking.
llvm-svn: 48119
|
| |
|
|
| |
llvm-svn: 48118
|
| |
|
|
| |
llvm-svn: 48117
|
| |
|
|
|
|
|
|
|
| |
- "Redefinition of I" (iterator masks previous definition)
- include missing header file
Patch by Argiris Kirtzidis!
llvm-svn: 48115
|
| |
|
|
| |
llvm-svn: 48112
|
| |
|
|
| |
llvm-svn: 48111
|
| |
|
|
| |
llvm-svn: 48109
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
they are produced by calls (which are known exact) and by cross block copies
which are known to be produced by extends.
This improves:
define double @test2() {
%tmp85 = call double asm sideeffect "fld0", "={st(0)}"()
ret double %tmp85
}
from:
_test2:
subl $20, %esp
# InlineAsm Start
fld0
# InlineAsm End
fstpl 8(%esp)
movsd 8(%esp), %xmm0
movsd %xmm0, (%esp)
fldl (%esp)
addl $20, %esp
#FP_REG_KILL
ret
to:
_test2:
# InlineAsm Start
fld0
# InlineAsm End
#FP_REG_KILL
ret
by avoiding a f64 <-> f80 trip
llvm-svn: 48108
|
| |
|
|
|
|
|
|
|
|
|
|
| |
an RFP register class.
Teach ScheduleDAG how to handle CopyToReg with different src/dst
reg classes.
This allows us to compile trivial inline asms that expect stuff
on the top of x87-fp stack.
llvm-svn: 48107
|