| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 31775
|
|
|
|
|
|
| |
addrmodes.
llvm-svn: 31757
|
|
|
|
| |
llvm-svn: 31733
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
produces this clever code:
_millisecs:
lis r2, ha16(_Time.1182)
lwzu r3, lo16(_Time.1182)(r2)
lwz r2, 4(r2)
addic r4, r2, 1
addze r3, r3
blr
instead of this:
_millisecs:
lis r2, ha16(_Time.1182)
la r3, lo16(_Time.1182)(r2)
lwz r2, lo16(_Time.1182)(r2)
lwz r3, 4(r3)
addic r4, r3, 1
addze r3, r2
blr
for:
long %millisecs() {
%tmp = load long* %Time.1182 ; <long> [#uses=1]
%tmp1 = add long %tmp, 1 ; <long> [#uses=1]
ret long %tmp1
}
llvm-svn: 31673
|
|
|
|
| |
llvm-svn: 31654
|
|
|
|
|
|
|
|
|
| |
(because the 64-bit reg target versions aren't implemented yet), doesn't
support r+r addr modes, and doesn't handle stores, but it works otherwise. :)
This is disabled unless -enable-ppc-preinc is passed to llc for now.
llvm-svn: 31621
|
|
|
|
| |
llvm-svn: 31571
|
|
|
|
|
|
| |
class, where it can be used for preinc formation.
llvm-svn: 31536
|
|
|
|
|
|
|
|
|
|
| |
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
|
|
|
|
|
|
| |
condition. This fixes miscompilation of Olden/bh and many others.
llvm-svn: 31301
|
|
|
|
| |
llvm-svn: 30577
|
|
|
|
| |
llvm-svn: 30510
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Codegen this comparison:
if (X == 0x8000)
as:
cmplwi cr0, r3, 32768
bne cr0, LBB1_2 ;cond_next
instead of:
lis r2, 0
ori r2, r2, 32768
cmpw cr0, r3, r2
bne cr0, LBB1_2 ;cond_next
2. Codegen this comparison:
if (X == 0x12345678)
as:
xoris r2, r3, 4660
cmplwi cr0, r2, 22136
bne cr0, LBB1_2 ;cond_next
instead of:
lis r2, 4660
ori r2, r2, 22136
cmpw cr0, r3, r2
bne cr0, LBB1_2 ;cond_next
llvm-svn: 30509
|
|
|
|
| |
llvm-svn: 29911
|
|
|
|
|
|
| |
SDOperand arguments. Use the variants which take an array and number instead.
llvm-svn: 29907
|
|
|
|
| |
llvm-svn: 29901
|
|
|
|
| |
llvm-svn: 29898
|
|
|
|
| |
llvm-svn: 29895
|
|
|
|
| |
llvm-svn: 29715
|
|
|
|
| |
llvm-svn: 29604
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the start of an array and a count of operands where applicable. In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap. In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time. The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566
|
|
|
|
| |
llvm-svn: 29549
|
|
|
|
| |
llvm-svn: 29373
|
|
|
|
| |
llvm-svn: 29338
|
|
|
|
| |
llvm-svn: 28971
|
|
|
|
| |
llvm-svn: 28944
|
|
|
|
| |
llvm-svn: 28941
|
|
|
|
| |
llvm-svn: 28922
|
|
|
|
|
|
| |
doesn't work right).
llvm-svn: 28921
|
|
|
|
|
|
| |
nodes correctly.
llvm-svn: 28745
|
|
|
|
| |
llvm-svn: 28473
|
|
|
|
| |
llvm-svn: 28471
|
|
|
|
| |
llvm-svn: 28459
|
|
|
|
|
|
| |
non-deterministic behavior.
llvm-svn: 28454
|
|
|
|
|
|
| |
enough to be autogenerated.
llvm-svn: 28354
|
|
|
|
|
|
|
|
| |
the copyto/fromregs instead of making the PPCISD::CALL selection code create
them. This vastly simplifies the selection code, and moves the ABI handling
parts into one place.
llvm-svn: 28346
|
|
|
|
| |
llvm-svn: 28341
|
|
|
|
|
|
|
| |
Nate, please verify that if InsertMask is 0, rlwimi shouldn't be used.
This fixes the crash and causes no PPC testsuite regressions.
llvm-svn: 28243
|
|
|
|
| |
llvm-svn: 28168
|
|
|
|
| |
llvm-svn: 28162
|
|
|
|
|
|
|
|
| |
still a couple missed optimizations, but we now generate all the possible
rlwimis for multiple inserts into the same bitfield. More regression tests
to come.
llvm-svn: 28156
|
|
|
|
|
|
|
|
| |
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947
|
|
|
|
| |
llvm-svn: 27543
|
|
|
|
| |
llvm-svn: 27151
|
|
|
|
| |
llvm-svn: 27109
|
|
|
|
|
|
|
| |
modes than emitting an explicit add and using a base of r0. This implements
Regression/CodeGen/PowerPC/mem-rr-addr-mode.ll
llvm-svn: 27068
|
|
|
|
|
|
|
| |
which is shifted left two bits before use. Instructions like STD use this
addressing mode.
llvm-svn: 26942
|
|
|
|
| |
llvm-svn: 26917
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
disp field of the load/store if possible. This compiles
CodeGen/PowerPC/load-constant-addr.ll to:
_test:
lis r2, 2838
lfs f1, 26848(r2)
blr
instead of:
_test:
lis r2, 2838
ori r2, r2, 26848
lfs f1, 0(r2)
blr
llvm-svn: 26908
|
|
|
|
| |
llvm-svn: 26902
|