[Mono-bugs] [Bug 81663][Wis] Changed - Performance: Delegate optimization, DLR and IronPython

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Thu May 24 13:55:44 EDT 2007

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 lupus at ximian.com.


--- shadow/81663	2007-05-24 09:03:33.000000000 -0400
+++ shadow/81663.tmp.6129	2007-05-24 13:55:44.000000000 -0400
@@ -153,6 +153,24 @@
 according to the target and prev fields in the delegate.
 ------- Additional Comments From vargaz at gmail.com  2007-05-24 09:03 -------
 The original Invoke call was virtual so the patch adds no overhead in
+------- Additional Comments From lupus at ximian.com  2007-05-24 13:55 -------
+The code before was doing:
+  static call to delegate_invoke
+  -> indirect call to method
+The patch does:
+  indirect call to delegate invoke_impl
+  -> indirect call to method
+My proposal instead would end up with:
+  indirect call to delegate invoke_impl
+  -> indirect jump (no need for prolog/epilog and argument reload)
+So it's no surprise that the patch causes a slowdown, because what
+saves time is the removal of the prolog/epilog and of the argument
+reload code.

More information about the mono-bugs mailing list