[Mono-devel-list] [PATCH] Faster array bounds checking

Ben Maurer bmaurer at users.sourceforge.net
Thu Apr 1 14:46:21 EST 2004


Hello,

The attached patch makes mini use the compare reg,membase operation when
it is doing array bounds checking. so, rather than:

mov length_reg, [array+length_offset]
cmp index,length_reg

we get

cmp index, [array+length_offset]

The speedup was pretty big for a simple test case:
[benm at Ben tmp]$ /devel/mono/mono/mini/mono array.exe
14760
[benm at Ben tmp]$ mono array.exe
16557

The number is the time in ms to do an array scan (the test is attached).

I got no regressions on the test suites.

Miguel has recommended that to avoid any legal issues, I license this
under the x11 license, so:

This patch is licensed under the MIT/X11 License.

-- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mini-fast-array-checks.patch
Type: text/x-patch
Size: 7418 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20040401/8cb0bee1/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: array.cs
Type: text/x-csharp
Size: 299 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20040401/8cb0bee1/attachment-0001.bin 


More information about the Mono-devel-list mailing list