| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
independent one: TargetInstrInfo::IMPLICIT_DEF.
llvm-svn: 48380
|
| |
|
|
|
|
|
| |
vectors go at the end of the memory area, after all
non-vector parameters.
llvm-svn: 48364
|
| |
|
|
|
|
|
|
|
| |
calls here. This was done earlier for params in
the varargs part of the params; any float params
that survive to here are in the non-varargs part,
and must not be promoted.
llvm-svn: 48310
|
| |
|
|
| |
llvm-svn: 48269
|
| |
|
|
| |
llvm-svn: 48264
|
| |
|
|
|
|
|
|
| |
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.
llvm-svn: 48256
|
| |
|
|
|
|
|
|
| |
and it's the result that requires expansion. This code is a little confusing
because the TargetLoweringInfo tables for [US]INT_TO_FP use the operand type
(the integer type) rather than the result type.
llvm-svn: 48206
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|