diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-11-10 01:33:53 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-11-10 01:33:53 +0000 |
| commit | cd436327f12d6af375de6111f138df9541d71f78 (patch) | |
| tree | b5d75da5791170afbc717f9e940af6318c8926b9 | |
| parent | 14140059f0a0e149df0f1dc88045710c23b0d64c (diff) | |
| download | bcm5719-llvm-cd436327f12d6af375de6111f138df9541d71f78.tar.gz bcm5719-llvm-cd436327f12d6af375de6111f138df9541d71f78.zip | |
add note about ugly codegen with preinc
llvm-svn: 31617
| -rw-r--r-- | llvm/lib/Target/PowerPC/README.txt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/README.txt b/llvm/lib/Target/PowerPC/README.txt index 8834699f63a..0b4f78f67b0 100644 --- a/llvm/lib/Target/PowerPC/README.txt +++ b/llvm/lib/Target/PowerPC/README.txt @@ -9,6 +9,35 @@ TODO: Support 'update' load/store instructions. These are cracked on the G5, but are still a codesize win. +With preinc enabled, this: + +long *%test4(long *%X, long *%dest) { + %Y = getelementptr long* %X, int 4 + %A = load long* %Y + store long %A, long* %dest + ret long* %Y +} + +compiles to: + +_test4: + mr r2, r3 + lwzu r5, 32(r2) + lwz r3, 36(r3) + stw r5, 0(r4) + stw r3, 4(r4) + mr r3, r2 + blr + +with -sched=list-burr, I get: + +_test4: + lwz r2, 36(r3) + lwzu r5, 32(r3) + stw r2, 4(r4) + stw r5, 0(r4) + blr + ===-------------------------------------------------------------------------=== We compile the hottest inner loop of viterbi to: |

