summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-11-10 01:33:53 +0000
committerChris Lattner <sabre@nondot.org>2006-11-10 01:33:53 +0000
commitcd436327f12d6af375de6111f138df9541d71f78 (patch)
treeb5d75da5791170afbc717f9e940af6318c8926b9
parent14140059f0a0e149df0f1dc88045710c23b0d64c (diff)
downloadbcm5719-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.txt29
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:
OpenPOWER on IntegriCloud