Author: zoltan
Date: 2007-05-09 12:50:46 -0400 (Wed, 09 May 2007)
New Revision: 77036

Modified:
   branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog
   branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
   branches/vargaz/mini-linear-il/mono/mono/mini/mini.c
Log:
2007-05-09  Zoltan Varga  <[EMAIL PROTECTED]>

        * mini.c (compare_by_interval_start_pos_func): Fix comparison of empty 
intervals.


Modified: branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog     2007-05-09 
16:50:33 UTC (rev 77035)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog     2007-05-09 
16:50:46 UTC (rev 77036)
@@ -1,5 +1,7 @@
 2007-05-09  Zoltan Varga  <[EMAIL PROTECTED]>
 
+       * mini.c (compare_by_interval_start_pos_func): Fix comparison of empty 
intervals.
+
        * mini-codegen.c (mono_spillvar_offset): Avoid an assert here.
 
        * method-to-ir.c (mono_method_to_ir2): Don't print after-method-to-ir 
IR in inlined

Modified: branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c        
2007-05-09 16:50:33 UTC (rev 77035)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c        
2007-05-09 16:50:46 UTC (rev 77036)
@@ -10107,7 +10107,7 @@
  *   parts of the tree could be separated by other instructions, killing the 
tree
  *   arguments, or stores killing loads etc. Also, should we fold loads into 
other
  *   instructions if the result of the load is used multiple times ?
- * - LAST MERGE: 76948.
+ * - LAST MERGE: 77034.
  */
 
 /*

Modified: branches/vargaz/mini-linear-il/mono/mono/mini/mini.c
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/mini.c        2007-05-09 
16:50:33 UTC (rev 77035)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/mini.c        2007-05-09 
16:50:46 UTC (rev 77036)
@@ -8560,13 +8560,14 @@
        MonoMethodVar *v1 = (MonoMethodVar*)a;
        MonoMethodVar *v2 = (MonoMethodVar*)b;
 
-       if (v1->interval->range && v2->interval->range)
+       if (v1 == v2)
+               return 0;
+       else if (v1->interval->range && v2->interval->range)
                return v1->interval->range->from - v2->interval->range->from;
+       else if (v1->interval->range)
+               return -1;
        else
-               if (v1 == v2)
-                       return 0;
-               else
-                       return 1;
+               return 1;
 }
 
 #if 0
@@ -8610,6 +8611,19 @@
 
        vars = g_list_sort (g_list_copy (vars), 
compare_by_interval_start_pos_func);
 
+       /* Sanity check */
+       /*
+       i = 0;
+       for (unhandled = vars; unhandled; unhandled = unhandled->next) {
+               MonoMethodVar *current = unhandled->data;
+
+               if (current->interval->range) {
+                       g_assert (current->interval->range->from >= i);
+                       i = current->interval->range->from;
+               }
+       }
+       */
+
        offset = 0;
        *stack_align = 0;
        for (unhandled = vars; unhandled; unhandled = unhandled->next) {
@@ -8691,6 +8705,11 @@
                        else
                                pos = current->interval->range->from;
 
+                       LSCAN_DEBUG (printf ("process R%d ", inst->dreg));
+                       if (current->interval->range)
+                               LSCAN_DEBUG (mono_linterval_print 
(current->interval));
+                       LSCAN_DEBUG (printf ("\n"));
+
                        /* Check for intervals in active which expired or 
inactive */
                        changed = TRUE;
                        /* FIXME: Optimize this */

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to