mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-26 18:20:39 +00:00
add a note from viterbi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31506 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -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:
|
Compile:
|
||||||
|
|
||||||
void foo(int *P) {
|
void foo(int *P) {
|
||||||
|
|||||||
Reference in New Issue
Block a user