diff options
author | Chris Lattner <sabre@nondot.org> | 2006-09-20 04:25:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-09-20 04:25:47 +0000 |
commit | 3836dbd3bde1100c1df847a582784cf83d18daf6 (patch) | |
tree | 58f0b78b5910c385b3ea913b8dcd74733ac45848 /lib/Target/PowerPC/README.txt | |
parent | cc96ac3a7d1513e48c452f11d39ff00ecc8820fe (diff) |
Two improvements:
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30509 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/README.txt')
-rw-r--r-- | lib/Target/PowerPC/README.txt | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt index cfc7eb38b2..4f7f2cff10 100644 --- a/lib/Target/PowerPC/README.txt +++ b/lib/Target/PowerPC/README.txt @@ -50,27 +50,6 @@ we don't have to always run the branch selector for small functions. ===-------------------------------------------------------------------------=== -* Codegen this: - - void test2(int X) { - if (X == 0x12345678) bar(); - } - - as: - - xoris r0,r3,0x1234 - cmplwi cr0,r0,0x5678 - beq cr0,L6 - - not: - - lis r2, 4660 - ori r2, r2, 22136 - cmpw cr0, r3, r2 - bne .LBB_test2_2 - -===-------------------------------------------------------------------------=== - Lump the constant pool for each function into ONE pic object, and reference pieces of it as offsets from the start. For functions like this (contrived to have lots of constants obviously): |