Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=78642 --- shadow/78642 2006-06-16 09:14:02.000000000 -0400 +++ shadow/78642.tmp.23882 2006-06-18 16:33:11.000000000 -0400 @@ -348,6 +348,46 @@ Some optimizations which can be performed but we don't do it are: - conversion of division by / 8 into a right shift when the value to be divided is known to be positive ('i' in the inner loop) - array bound check removal on the array accesses in the inner loop. + +------- Additional Comments From [EMAIL PROTECTED] 2006-06-18 16:33 ------- +The assembly code generated here is unusually bad: + + 90: b9 08 00 00 00 mov ecx,0x8 + 95: 8b c6 mov eax,esi + 97: 99 cdq + 98: f7 f9 idiv ecx + 9a: 39 47 0c cmp DWORD PTR [edi+12],eax + 9d: 0f 86 cd 00 00 00 jbe 170 <PerformanceTest_Main+0x170> + a3: 8d 44 07 10 lea eax,[edi+eax+16] + a7: 0f b6 00 movzx eax,BYTE PTR [eax] + aa: 89 45 b0 mov DWORD PTR [ebp-80],eax + ad: b8 01 00 00 00 mov eax,0x1 + b2: 89 45 ac mov DWORD PTR [ebp-84],eax + b5: b8 07 00 00 00 mov eax,0x7 + ba: 89 45 a8 mov DWORD PTR [ebp-88],eax + bd: b9 08 00 00 00 mov ecx,0x8 + c2: 8b c3 mov eax,ebx + c4: 99 cdq + c5: f7 f9 idiv ecx + c7: 8b c2 mov eax,edx + c9: 8b 55 ac mov edx,DWORD PTR [ebp-84] + cc: 8b 4d a8 mov ecx,DWORD PTR [ebp-88] + cf: 2b c8 sub ecx,eax + d1: 8b 45 b0 mov eax,DWORD PTR [ebp-80] + d4: 83 e1 1f and ecx,0x1f + d7: d3 e2 shl edx,cl + d9: 8b ca mov ecx,edx + db: 23 c1 and eax,ecx + dd: 89 45 f0 mov DWORD PTR [ebp-16],eax + e0: 43 inc ebx + +The segment from ad to ba is especially bad, constants being spilled +into the stack and then later loaded into registers. + +-O=all gets it to about 0m2.674s (vs 0m4.191s) for me (you have to +write k to the console, otherwise it *really* eliminates dead code :-) + +Changing stuff to uint also got much better performance. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
