[Mono-bugs] [Bug 61641][Wis] Changed - [PATCH] Suboptimal register allocation with `if' statements

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Mon, 21 Mar 2005 05:06:08 -0500 (EST)

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@ximian.com.


--- shadow/61641	2004-07-19 16:30:19.000000000 -0400
+++ shadow/61641.tmp.14912	2005-03-21 05:06:08.000000000 -0500
@@ -671,6 +671,23 @@
     - MCS was able to allocate 10% more variables to registers
     - Zipmark got a 10% performance increase on -O=deadce,loop
 We should do more evaluation of the new ordering for liveness, but I
 think the initial results are promising.       
+------- Additional Comments From lupus@ximian.com  2005-03-21 05:06 -------
+The patch is buggy.
+Var liveness can't be encoded using the IL order of
+basic blocks since it may happen that two vars
+appear non overlapping when instead the control flow
+makes them overlapping. It's trivial to make a test case:
+        use x many times;
+        branch L1;
+        use x many times;
+        ret;
+        use y many times;
+        branch L2;
+If x and y get allocated to the same register you get corruption.