[Mono-bugs] [Bug 59006][Wis] Changed - [PATCH] [perf] stelem.ref perf

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Thu, 8 Jul 2004 15:20:27 -0400 (EDT)


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 vargaz@freemail.hu.

http://bugzilla.ximian.com/show_bug.cgi?id=59006

--- shadow/59006	2004-06-29 20:02:42.000000000 -0400
+++ shadow/59006.tmp.14243	2004-07-08 15:20:27.000000000 -0400
@@ -53,6 +53,34 @@
 code. If the quick test fails, the code falls back on to managed code.
 
 This gave me a nice 3% boost in MCS.
 
 I was able to do a full bootstrap with this patch. I also added some
 regression tests (in the patch) which passed.
+
+------- Additional Comments From vargaz@freemail.hu  2004-07-08 15:20 -------
+This looks good, some notes:
+- instead of 
+
+mono_mb_emit_managed_call (mb,
++		mono_marshal_get_icall_wrapper (isinst_sig, "mono_object_isinst",
+mono_object_isinst),
++		NULL);
+
+, you should register mono_object_isinst as a JIT icall in
+mono_marshal_init and call it using mono_mb_emit_icall like this:
+
+		register_icall (mono_object_isinst, "mono_object_isinst", "object
+object ptr", FALSE);
+
+- the wrapper should have a new wrapper type instead of UNKNOWN. This
+  is important since it enables the AOT code to distinguish between 
+wrappers.
+
+- maybe call the C function and the generated method 'stelem_ref' to
+  comply with the naming convention in other parts of the code.
+
+- You might want to experiment with inlining the method into its 
+caller like it is done with CEE_ISINST.
+
+
+