Changes in directory llvm/lib/Target/PowerPC:
README.txt updated: 1.57 -> 1.58 --- Log message: Flesh out a couple of the items in the README --- Diffs of the changes: (+41 -14) README.txt | 55 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 41 insertions(+), 14 deletions(-) Index: llvm/lib/Target/PowerPC/README.txt diff -u llvm/lib/Target/PowerPC/README.txt:1.57 llvm/lib/Target/PowerPC/README.txt:1.58 --- llvm/lib/Target/PowerPC/README.txt:1.57 Thu Feb 2 19:49:49 2006 +++ llvm/lib/Target/PowerPC/README.txt Thu Feb 2 23:17:06 2006 @@ -2,20 +2,17 @@ * gpr0 allocation * implement do-loop -> bdnz transform * implement powerpc-64 for darwin -* use stfiwx in float->int -* Fold add and sub with constant into non-extern, non-weak addresses so this: - lis r2, ha16(l2__ZTV4Cell) - la r2, lo16(l2__ZTV4Cell)(r2) - addi r2, r2, 8 -becomes: - lis r2, ha16(l2__ZTV4Cell+8) - la r2, lo16(l2__ZTV4Cell+8)(r2) +===-------------------------------------------------------------------------=== + +Use the stfiwx instruction for: +void foo(float a, int *b) { *b = a; } + +===-------------------------------------------------------------------------=== -* Teach LLVM how to codegen this: unsigned short foo(float a) { return a; } -as: +should be: _foo: fctiwz f0,f1 stfd f0,-8(r1) @@ -29,11 +26,15 @@ rlwinm r3, r2, 0, 16, 31 blr -* Support 'update' load/store instructions. These are cracked on the G5, but - are still a codesize win. +===-------------------------------------------------------------------------=== + +Support 'update' load/store instructions. These are cracked on the G5, but are +still a codesize win. + +===-------------------------------------------------------------------------=== -* should hint to the branch select pass that it doesn't need to print the - second unconditional branch, so we don't end up with things like: +Should hint to the branch select pass that it doesn't need to print the second +unconditional branch, so we don't end up with things like: b .LBBl42__2E_expand_function_8_674 ; loopentry.24 b .LBBl42__2E_expand_function_8_42 ; NewDefault b .LBBl42__2E_expand_function_8_42 ; NewDefault @@ -475,3 +476,29 @@ Get the C front-end to expand hypot(x,y) -> llvm.sqrt(x*x+y*y) when errno and precision don't matter (ffastmath). Misc/mandel will like this. :) +===-------------------------------------------------------------------------=== + +Fold add and sub with constant into non-extern, non-weak addresses so this: + +static int a; +void bar(int b) { a = b; } +void foo(unsigned char *c) { + *c = a; +} + +So that + +_foo: + lis r2, ha16(_a) + la r2, lo16(_a)(r2) + lbz r2, 3(r2) + stb r2, 0(r3) + blr + +Becomes + +_foo: + lis r2, ha16(_a+3) + lbz r2, lo16(_a+3)(r2) + stb r2, 0(r3) + blr _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits