[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.
+
+
+