| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 31684
|
|
|
|
|
|
|
|
| |
potentially some system calls/exception handling from working. TOS must always
link to previous frame. This is a short term workaround until alloca scheme is
reworked.
llvm-svn: 31677
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
def operand or a use operand.
llvm-svn: 30109
|
|
|
|
|
|
| |
handling.)
llvm-svn: 29954
|
|
|
|
| |
llvm-svn: 29880
|
|
|
|
| |
llvm-svn: 29114
|
|
|
|
| |
llvm-svn: 29096
|
|
|
|
|
|
| |
the offset two bits to the left.
llvm-svn: 28933
|
|
|
|
| |
llvm-svn: 28889
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allocated, thus live across the save/reload. This fixes
llc-beta /MultiSource/Applications/spiff/spiff
llc-beta /MultiSource/Benchmarks/sim/sim:
llc-beta /MultiSource/Benchmarks/Ptrdist/bc/bc
llc-beta /MultiSource/Benchmarks/McCat/12-IOtest/iotest:
llc-beta /MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow
llc-beta /MultiSource/Benchmarks/Fhourstones-3.1/fhourstones3.1
llc-beta /MultiSource/Benchmarks/mediabench/adpcm/rawdaudio/rawdaudio
llc-beta /MultiSource/Benchmarks/mediabench/adpcm/rawcaudio/rawcaudio
llc-beta /MultiSource/Benchmarks/mediabench/g721/g721encode/encode
llc-beta /MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg
and probably others, with -regalloc=local.
llvm-svn: 28761
|
|
|
|
|
|
| |
Olden/power (and probably others) with -regalloc=local.
llvm-svn: 28760
|
|
|
|
| |
llvm-svn: 28378
|
|
|
|
|
|
|
| |
really a bad codegen bug that LLC happens to get lucky with. I must chat with
Nate for the proper fix.
llvm-svn: 28213
|
|
|
|
| |
llvm-svn: 28102
|
|
|
|
| |
llvm-svn: 28099
|
|
|
|
|
|
|
|
|
| |
fhourstones).
Loading and storing off R0 isn't what we wanted. Also, taking some CR's out of
CRRC seems to cause failures as well. Further investigation is required.
llvm-svn: 28097
|
|
|
|
|
|
| |
don't step on R11 in the middle of a function when saving and restoring CRs
llvm-svn: 28058
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allows us to codegen functions as:
_test_rol:
vspltisw v2, -12
vrlw v2, v2, v2
blr
instead of:
_test_rol:
mfvrsave r2, 256
mr r3, r2
mtvrsave r3
vspltisw v2, -12
vrlw v2, v2, v2
mtvrsave r2
blr
Testcase here: CodeGen/PowerPC/vec_vrsave.ll
llvm-svn: 27777
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the vrsave register for the caller. This allows us to codegen a function as:
_test_rol:
mfspr r2, 256
mr r3, r2
mtspr 256, r3
vspltisw v2, -12
vrlw v2, v2, v2
mtspr 256, r2
blr
instead of:
_test_rol:
mfspr r2, 256
oris r3, r2, 40960
mtspr 256, r3
vspltisw v0, -12
vrlw v2, v0, v0
mtspr 256, r2
blr
llvm-svn: 27772
|
|
|
|
|
|
| |
register info.
llvm-svn: 27770
|
|
|
|
| |
llvm-svn: 27769
|
|
|
|
| |
llvm-svn: 27594
|
|
|
|
| |
llvm-svn: 27593
|
|
|
|
| |
llvm-svn: 27588
|
|
|
|
| |
llvm-svn: 27491
|
|
|
|
|
|
| |
more than the OS keeps the stack aligned.
llvm-svn: 27381
|
|
|
|
| |
llvm-svn: 27225
|
|
|
|
| |
llvm-svn: 27180
|
|
|
|
| |
llvm-svn: 26994
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_foo2:
extsw r2, r3
std r2, -8(r1)
lfd f0, -8(r1)
fcfid f0, f0
frsp f1, f0
blr
instead of this:
_foo2:
lis r2, ha16(LCPI2_0)
lis r4, 17200
xoris r3, r3, 32768
stw r3, -4(r1)
stw r4, -8(r1)
lfs f0, lo16(LCPI2_0)(r2)
lfd f1, -8(r1)
fsub f0, f1, f0
frsp f1, f0
blr
This speeds up Misc/pi from 2.44s->2.09s with LLC and from 3.01->2.18s
with llcbeta (16.7% and 38.1% respectively).
llvm-svn: 26943
|
|
|
|
| |
llvm-svn: 26813
|
|
|
|
| |
llvm-svn: 26806
|
|
|
|
|
|
| |
5 instructions away.
llvm-svn: 26801
|
|
|
|
| |
llvm-svn: 26800
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
registers, and update it on entry to each function, then restore it on exit.
This compiles:
void func(vfloat *a, vfloat *b, vfloat *c) {
*a = *b * *c + *c;
}
to this:
_func:
mfspr r2, 256
oris r6, r2, 49152
mtspr 256, r6
lvx v0, 0, r5
lvx v1, 0, r4
vmaddfp v0, v1, v0, v0
stvx v0, 0, r3
mtspr 256, r2
blr
GCC produces this (which has additional stack accesses):
_func:
mfspr r0,256
stw r0,-4(r1)
oris r0,r0,0xc000
mtspr 256,r0
lvx v0,0,r5
lvx v1,0,r4
lwz r12,-4(r1)
vmaddfp v0,v0,v1,v0
stvx v0,0,r3
mtspr 256,r12
blr
llvm-svn: 26733
|
|
|
|
|
|
| |
more logical place. Other methods should also be moved if anyoneis interested. :)
llvm-svn: 25913
|
|
|
|
| |
llvm-svn: 25231
|
|
|
|
|
|
| |
functionality change, just code cleanup.
llvm-svn: 25230
|
|
|
|
|
|
| |
pointer in the epilog, not a load.
llvm-svn: 25229
|
|
|
|
|
|
| |
hasInFlag, hasOutFlag.
llvm-svn: 25155
|
|
|
|
|
|
|
|
| |
* Added a pseudo instruction (for each target) that represent "return void".
This is a workaround for lack of optional flag operand (return void is not
lowered so it does not have a flag operand.)
llvm-svn: 24997
|
|
|
|
|
|
|
|
| |
alignment information appropriately. Includes code for PowerPC to support
fixed-size allocas with alignment larger than the stack. Support for
arbitrarily aligned dynamic allocas coming soon.
llvm-svn: 24224
|
|
|
|
| |
llvm-svn: 23787
|
|
|
|
|
|
| |
purely mechanical.
llvm-svn: 23778
|
|
|
|
|
|
| |
redundant after the change.
llvm-svn: 23759
|
|
This completes the grand PPC file renaming
llvm-svn: 23745
|