mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
add a note from viterbi
llvm-svn: 31506
This commit is contained in:
parent
3e2e03ef34
commit
f64e5f5f3e
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user