| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 23987
|
|
|
|
| |
llvm-svn: 23985
|
|
|
|
| |
llvm-svn: 23984
|
|
|
|
| |
llvm-svn: 23982
|
|
|
|
|
|
| |
if the dag combiner isn't run
llvm-svn: 23981
|
|
|
|
|
|
|
|
| |
let the generic code handle it. This fixes CodeGen/Generic/2005-10-21-longlonggtu.ll on ppc.
also, reindent this code
llvm-svn: 23874
|
|
|
|
|
|
|
|
|
|
| |
Add a new flag to TargetLowering indicating if the target has really cheap
signed division by powers of two, make ppc use it. This will probably go
away in the future.
Implement some more ISD::SDIV folds in the dag combiner
Remove now dead code in the x86 backend.
llvm-svn: 23853
|
|
|
|
|
|
|
| |
that the nodes can be folded with other nodes, and we can not duplicate
code in every backend. Alpha will probably want this too.
llvm-svn: 23835
|
|
|
|
|
|
| |
doing something clever.
llvm-svn: 23824
|
|
|
|
| |
llvm-svn: 23811
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
code for long long foo(long long a, long long b) { return a + b; }
_foo:
or r2, r3, r3
or r3, r4, r4
or r4, r5, r5
or r5, r6, r6
rldicr r2, r2, 32, 31
rldicl r3, r3, 0, 32
rldicr r4, r4, 32, 31
rldicl r5, r5, 0, 32
or r2, r3, r2
or r3, r5, r4
add r4, r3, r2
rldicl r2, r4, 32, 32
or r4, r4, r4
or r3, r2, r2
blr
llvm-svn: 23809
|
|
|
|
|
|
|
|
|
|
|
| |
will have to tide us over until we get real subreg support, but it prevents
the PrologEpilogInserter from spilling 8 byte GPRs on a G4 processor.
Add some initial support for TRUNCATE and ANY_EXTEND, but they don't
currently work due to issues with ScheduleDAG. Something wll have to be
figured out.
llvm-svn: 23803
|
|
|
|
|
|
|
| |
allows us to lower legal return types to something else, to meet ABI
requirements (such as that i64 be returned in two i32 regs on Darwin/ppc).
llvm-svn: 23802
|
|
|
|
|
|
| |
purely mechanical.
llvm-svn: 23778
|
|
|
|
|
|
| |
redundant after the change.
llvm-svn: 23759
|
|
|
|
|
|
| |
SelectIntImmediateExpr dead.
llvm-svn: 23753
|
|
|
|
| |
llvm-svn: 23751
|
|
|
|
| |
llvm-svn: 23749
|
|
|
|
|
|
| |
This completes the grand PPC file renaming
llvm-svn: 23745
|
|
|
|
| |
llvm-svn: 23743
|
|
|
|
| |
llvm-svn: 23738
|
|
|
|
| |
llvm-svn: 23731
|
|
|
|
|
|
|
|
|
| |
the 177.mesa failure from last night, and fixes the
CodeGen/PowerPC/2005-10-08-ArithmeticRotate.ll regression test I added.
If this code cannot be fixed, it should be removed for good, but I'll leave
it to Nate to decide its fate.
llvm-svn: 23670
|
|
|
|
|
|
|
|
| |
is faster and uses less stack space. This reduces our stack requirement
enough to compile sixtrack, and though it's a hack, should be enough until
we switch to iterative isel
llvm-svn: 23664
|
|
|
|
| |
llvm-svn: 23650
|
|
|
|
| |
llvm-svn: 23649
|
|
|
|
| |
llvm-svn: 23648
|
|
|
|
|
|
|
|
|
|
|
| |
helps but not enough.
Start pulling cases out of PPC32DAGToDAGISel::Select. With GCC 4, this function
required 8512 bytes of stack space for each invocation (GCC 3 required less
than 700 bytes). Pulling this first function out gets us down to 8224. More
to come :(
llvm-svn: 23647
|
|
|
|
|
|
|
| |
the comparison to be 64-bits. This is fine because extensions from float
to double are free.
llvm-svn: 23589
|
|
|
|
|
|
|
|
| |
such
split the FSEL family into 4 things instead of just two.
llvm-svn: 23588
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we're in a single-mbb loop, make sure to emit the backwards branch as the
conditional branch instead of the uncond branch. For example, emit this:
LBBl29_z__44:
stw r9, 0(r15)
stw r9, 4(r15)
stw r9, 8(r15)
stw r9, 12(r15)
addi r15, r15, 16
addi r8, r8, 1
cmpw cr0, r8, r28
ble cr0, LBBl29_z__44
b LBBl29_z__48 *** NOT PART OF LOOP
Instead of:
LBBl29_z__44:
stw r9, 0(r15)
stw r9, 4(r15)
stw r9, 8(r15)
stw r9, 12(r15)
addi r15, r15, 16
addi r8, r8, 1
cmpw cr0, r8, r28
bgt cr0, LBBl29_z__48 *** PART OF LOOP!
b LBBl29_z__44
The former sequence has one fewer dispatch group for the loop body.
llvm-svn: 23582
|
|
|
|
| |
llvm-svn: 23578
|
|
|
|
|
|
|
| |
These are used to represent float and double values, and the two regclasses
contain the same physical registers.
llvm-svn: 23577
|
|
|
|
| |
llvm-svn: 23572
|
|
|
|
| |
llvm-svn: 23532
|
|
|
|
|
|
|
| |
ReplaceAllUsesWith does not replace scalars SDOperand floating around on
the stack, permitting things to be selected multiple times.
llvm-svn: 23515
|
|
|
|
| |
llvm-svn: 23512
|
|
|
|
| |
llvm-svn: 23511
|
|
|
|
| |
llvm-svn: 23510
|
|
|
|
| |
llvm-svn: 23506
|
|
|
|
| |
llvm-svn: 23497
|
|
|
|
| |
llvm-svn: 23494
|
|
|
|
| |
llvm-svn: 23489
|
|
|
|
|
|
| |
cross MBB pollution.
llvm-svn: 23470
|
|
|
|
| |
llvm-svn: 23342
|
|
|
|
|
|
| |
can use/define class methods
llvm-svn: 23339
|
|
|
|
| |
llvm-svn: 23304
|
|
|
|
| |
llvm-svn: 23262
|
|
|
|
|
|
|
|
|
| |
are allowed to generate 64-bit-only PowerPC instructions for 32 bit hosts,
such as the PowerPC 970.
This speeds up 189.lucas from 81.99 to 32.64 seconds.
llvm-svn: 23250
|
|
|
|
| |
llvm-svn: 23239
|