History log of /llvm-project/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp (Results 401 – 425 of 429)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 6bd68ae8 17-Apr-2006 Chris Lattner <sabre@nondot.org>

Don't diddle VRSAVE if no registers need to be added/removed from it. This
allows us to codegen functions as:

_test_rol:
vspltisw v2, -12
vrlw v2, v2, v2
blr

instead of:

_

Don't diddle VRSAVE if no registers need to be added/removed from it. This
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

show more ...


# 72d7c270 17-Apr-2006 Chris Lattner <sabre@nondot.org>

Vectors that are known live-in and live-out are clearly already marked in
the vrsave register for the caller. This allows us to codegen a function as:

_test_rol:
mfspr r2, 256
mr r3

Vectors that are known live-in and live-out are clearly already marked in
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

show more ...


# 6df094b4 17-Apr-2006 Chris Lattner <sabre@nondot.org>

Move some knowledge about registers out of the code emitter into the register info.

llvm-svn: 27770


# 0f28d48d 17-Apr-2006 Chris Lattner <sabre@nondot.org>

Use a small table instead of macros to do this conversion.

llvm-svn: 27769


# f19bcd51 11-Apr-2006 Nate Begeman <natebegeman@mac.com>

Fix SingleSource/UnitTests/Vector/sumarray-dbl

llvm-svn: 27594


# 1bb13209 11-Apr-2006 Nate Begeman <natebegeman@mac.com>

Fix PR727, correctly handling large stack aligments on ppc

llvm-svn: 27593


# 02b3b72b 11-Apr-2006 Jim Laskey <jlaskey@mac.com>

Suppress debug label when not debug.

llvm-svn: 27588


# 2d7298c3 07-Apr-2006 Jim Laskey <jlaskey@mac.com>

Foundation for call frame information.

llvm-svn: 27491


# 54007275 03-Apr-2006 Chris Lattner <sabre@nondot.org>

Force use of a frame-pointer if there is anything on the stack that is aligned
more than the OS keeps the stack aligned.

llvm-svn: 27381


# d1aa1638 28-Mar-2006 Jim Laskey <jlaskey@mac.com>

Expose base register for DwarfWriter. Refactor code accordingly.

llvm-svn: 27225


# fa53b276 27-Mar-2006 Jim Laskey <jlaskey@mac.com>

Translate llvm target registers to dwarf register numbers properly.

llvm-svn: 27180


# 3c43609f 23-Mar-2006 Jim Laskey <jlaskey@mac.com>

Add support to locate local variables in frames (early version.)

llvm-svn: 26994


# 4a66d694 22-Mar-2006 Chris Lattner <sabre@nondot.org>

When possible, custom lower 32-bit SINT_TO_FP to this:

_foo2:
extsw r2, r3
std r2, -8(r1)
lfd f0, -8(r1)
fcfid f0, f0
frsp f1, f0
blr

instead of this

When possible, custom lower 32-bit SINT_TO_FP to this:

_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

show more ...


# 8bf1c59e 16-Mar-2006 Chris Lattner <sabre@nondot.org>

remove dead variable

llvm-svn: 26813


# 91400bd4 16-Mar-2006 Chris Lattner <sabre@nondot.org>

teach the ppc backend how to spill/reload vector regs

llvm-svn: 26806


# 0b27047a 16-Mar-2006 Chris Lattner <sabre@nondot.org>

in functions that use a lot of callee saved regs, this can be more than
5 instructions away.

llvm-svn: 26801


# fd9f3e8e 16-Mar-2006 Chris Lattner <sabre@nondot.org>

Add support for copying registers. still needed: spilling and reloading them

llvm-svn: 26800


# 02e2c18c 13-Mar-2006 Chris Lattner <sabre@nondot.org>

For functions that use vector registers, save VRSAVE, mark used
registers, and update it on entry to each function, then restore it on exit.

This compiles:

void func(vfloat *a, vfloat *b, vfloat *c

For functions that use vector registers, save VRSAVE, mark used
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

show more ...


# bb53acd0 02-Feb-2006 Chris Lattner <sabre@nondot.org>

Move isLoadFrom/StoreToStackSlot from MRegisterInfo to TargetInstrInfo,a far more logical place. Other methods should also be moved if anyoneis interested. :)

llvm-svn: 25913


# 2812e79c 11-Jan-2006 Chris Lattner <sabre@nondot.org>

Fix an off-by-one error that Nate's eagle eyes caught

llvm-svn: 25231


# dc43a3f2 11-Jan-2006 Chris Lattner <sabre@nondot.org>

Use the auto-insert BuildMI constructor to avoid an explicit insert. No
functionality change, just code cleanup.

llvm-svn: 25230


# 3280da3c 11-Jan-2006 Chris Lattner <sabre@nondot.org>

If a function has a non-zero sized frame, use an add to adjust the stack
pointer in the epilog, not a load.

llvm-svn: 25229


# 7785e5b3 09-Jan-2006 Evan Cheng <evan.cheng@apple.com>

New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replace
hasInFlag, hasOutFlag.

llvm-svn: 25155


# 9ae48604 23-Dec-2005 Evan Cheng <evan.cheng@apple.com>

* Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.
* Added a pseudo instruction (for each target) that represent "return void".
This is a workaround for lack of optional flag oper

* Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.
* 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

show more ...


Revision tags: llvmorg-1.6.0
# 3ee3e695 06-Nov-2005 Nate Begeman <natebegeman@mac.com>

Add the necessary support to the ISel to allow targets to codegen the new
alignment information appropriately. Includes code for PowerPC to support
fixed-size allocas with alignment larger than the

Add the necessary support to the ISel to allow targets to codegen the new
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

show more ...


1...<<1112131415161718