mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +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