| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 48169
|
| |
|
|
| |
llvm-svn: 48166
|
| |
|
|
| |
llvm-svn: 48158
|
| |
|
|
|
|
|
|
| |
return ValueType can depend its operands' ValueType.
This is a cosmetic change, no functionality impacted.
llvm-svn: 48145
|
| |
|
|
| |
llvm-svn: 48143
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
are looking pretty good now.
llvm-svn: 48043
|
| |
|
|
|
|
| |
and prefetchnta instructions.
llvm-svn: 48042
|
| |
|
|
| |
llvm-svn: 48041
|
| |
|
|
|
|
|
| |
by promoting smaller integral values (i32 at this point) to i64, then truncating
to get the wanted size.
llvm-svn: 48030
|
| |
|
|
| |
llvm-svn: 48029
|
| |
|
|
|
|
| |
but there are bugs.
llvm-svn: 48028
|
| |
|
|
| |
llvm-svn: 48027
|
| |
|
|
|
|
| |
with 32 or 64-bit operands/results.
llvm-svn: 48026
|
| |
|
|
|
|
| |
correct now.
llvm-svn: 47978
|
| |
|
|
| |
llvm-svn: 47918
|
| |
|
|
|
|
|
| |
class (cosmetic). First piece of byval implementation;
this doesn't work yet. No functional change.
llvm-svn: 47917
|
| |
|
|
| |
llvm-svn: 47915
|
| |
|
|
|
|
|
|
|
| |
PPC-64 doesn't work.) This also lowers the spilling of the CR registers so that
it uses a register other than the default R0 register (the scavenger scrounges
for one). A significant part of this patch fixes how kill information is
handled.
llvm-svn: 47863
|
| |
|
|
| |
llvm-svn: 47830
|
| |
|
|
| |
llvm-svn: 47827
|
| |
|
|
| |
llvm-svn: 47770
|
| |
|
|
|
|
|
|
| |
generic & x86 versions; change generic to follow x86
and improve comments. Add PPC version (not right
for non-Darwin.)
llvm-svn: 47734
|
| |
|
|
|
|
| |
16-byte boundaries.
llvm-svn: 47703
|
| |
|
|
|
|
| |
uses the same encoding everywhere. Linux FIXME'ed.
llvm-svn: 47701
|
| |
|
|
|
|
|
| |
and was causing aborts with the new APInt changes. This may also be
fixing an obscure ppc64 bug.
llvm-svn: 47692
|
| |
|
|
| |
llvm-svn: 47663
|
| |
|
|
|
|
|
| |
ComputeMaskedBits to use the APInt form, and remove the
non-APInt form.
llvm-svn: 47654
|
| |
|
|
| |
llvm-svn: 47629
|
| |
|
|
|
|
| |
would have been a Godsend here!
llvm-svn: 47625
|
| |
|
|
|
|
|
|
|
| |
%r3 on PPC) in their ASM files. However, it's hard for humans to read
during debugging. Adding a new field to the register data that lets you
specify a different name to be printed than the one that goes into the
ASM file -- %x3 instead of %r3, for instance.
llvm-svn: 47534
|
| |
|
|
| |
llvm-svn: 47369
|
| |
|
|
|
|
| |
a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support.
llvm-svn: 47213
|
| |
|
|
|
|
| |
really really really need refactoring :(
llvm-svn: 47171
|
| |
|
|
| |
llvm-svn: 47168
|
| |
|
|
|
|
| |
that doesn't support it. Per Chris.
llvm-svn: 47162
|
| |
|
|
|
|
|
|
|
|
| |
it follows the order of the enum, not alphabetical.
The motivation is to make -mattr=+ssse3,+sse41
select SSE41 as it ought to. Added "ignored"
enum values of 0 to PPC and SPU to avoid compiler
warnings.
llvm-svn: 47143
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) ConstantFP is now expand by default
2) ConstantFP is not turned into TargetConstantFP during Legalize
if it is legal.
This allows ConstantFP to be handled like Constant, allowing for
targets that can encode FP immediates as MachineOperands.
As a bonus, fix up Itanium FP constants, which now correctly match,
and match more constants! Hooray.
llvm-svn: 47121
|
| |
|
|
|
|
| |
to pass the mask APInt by value, not by reference.
llvm-svn: 47096
|
| |
|
|
| |
llvm-svn: 47079
|
| |
|
|
| |
llvm-svn: 47067
|
| |
|
|
|
|
| |
DAGCombine is now quite good at zapifying them.
llvm-svn: 47053
|
| |
|
|
| |
llvm-svn: 47051
|
| |
|
|
| |
llvm-svn: 47045
|
| |
|
|
| |
llvm-svn: 47043
|
| |
|
|
|
|
|
| |
Add an overload that supports the uint64_t interface for use by clients
that haven't been updated yet.
llvm-svn: 47039
|
| |
|
|
| |
llvm-svn: 47020
|