[Top][All Lists]
[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;
- [dotgnu-pnet-commits] libjit ./ChangeLog jit/jit-reg-alloc.c,
Aleksey Demakov <=