add a note from viterbi
authorChris Lattner <sabre@nondot.org>
Tue, 7 Nov 2006 18:30:21 +0000 (18:30 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 7 Nov 2006 18:30:21 +0000 (18:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31506 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/README.txt

index 70e97f74cdf5886ed3462e87be320883c280bf08..8834699f63ae91710f50e4ea2aca3519d373cd04 100644 (file)
@@ -11,6 +11,35 @@ still a codesize win.
 
 ===-------------------------------------------------------------------------===
 
+We compile the hottest inner loop of viterbi to:
+
+        li r6, 0
+        b LBB1_84       ;bb432.i
+LBB1_83:        ;bb420.i
+        lbzx r8, r5, r7
+        addi r6, r7, 1
+        stbx r8, r4, r7
+LBB1_84:        ;bb432.i
+        mr r7, r6
+        cmplwi cr0, r7, 143
+        bne cr0, LBB1_83        ;bb420.i
+
+The CBE manages to produce:
+
+       li r0, 143
+       mtctr r0
+loop:
+       lbzx r2, r2, r11
+       stbx r0, r2, r9
+       addi r2, r2, 1
+       bdz later
+       b loop
+
+This could be much better (bdnz instead of bdz) but it still beats us.  If we
+produced this with bdnz, the loop would be a single dispatch group.
+
+===-------------------------------------------------------------------------===
+
 Compile:
 
 void foo(int *P) {