dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] libjit ./ChangeLog jit/jit-reg-alloc.c


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ./ChangeLog jit/jit-reg-alloc.c
Date: Wed, 24 May 2006 18:56:32 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Branch:         
Changes by:     Aleksey Demakov <address@hidden>        06/05/24 18:56:32

Modified files:
        .              : ChangeLog 
        jit            : jit-reg-alloc.c 

Log message:
        fix spill cost calculation problem

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/ChangeLog.diff?tr1=1.229&tr2=1.230&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/jit/jit-reg-alloc.c.diff?tr1=1.29&tr2=1.30&r1=text&r2=text

Patches:
Index: libjit/ChangeLog
diff -u libjit/ChangeLog:1.229 libjit/ChangeLog:1.230
--- libjit/ChangeLog:1.229      Sun May 21 13:17:19 2006
+++ libjit/ChangeLog    Wed May 24 18:56:32 2006
@@ -1,3 +1,10 @@
+2006-05-25  Aleksey Demakov  <address@hidden>
+
+       * jit/jit-reg-alloc.c (use_cheapest_register): fix cost calculation
+       that sometimes caused overlooking free registers. This was a serious
+       problem as there are some 'spill_before' rules that assume that the
+       allocator will always choose EAX as the first free register.
+
 2006-05-21  Aleksey Demakov  <address@hidden>
 
        * jit/jit-reg-alloc.h: add _JIT_REGS_FREE_DEST flag to be used in
Index: libjit/jit/jit-reg-alloc.c
diff -u libjit/jit/jit-reg-alloc.c:1.29 libjit/jit/jit-reg-alloc.c:1.30
--- libjit/jit/jit-reg-alloc.c:1.29     Sat May 20 10:43:17 2006
+++ libjit/jit/jit-reg-alloc.c  Wed May 24 18:56:32 2006
@@ -2504,7 +2504,7 @@
                }
                else
                {
-                       cost = 10 + compute_spill_cost(gen, regs, reg, 
other_reg);
+                       cost = compute_spill_cost(gen, regs, reg, other_reg);
                }
 
                if(cost < suitable_cost
@@ -3562,6 +3562,7 @@
        regs->on_stack = (flags & _JIT_REGS_STACK) != 0;
        regs->x87_arith = (flags & _JIT_REGS_X87_ARITH) != 0;
        regs->reversible = (flags & _JIT_REGS_REVERSIBLE) != 0;
+       regs->free_dest = (flags & _JIT_REGS_FREE_DEST) != 0;
 
        regs->no_pop = 0;
        regs->reverse_dest = 0;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]