cvsuser 04/08/08 01:22:20
Modified: imcc debug.c reg_alloc.c
src dod.c
Log:
update dump_interference_graph
Revision Changes Path
1.34 +5 -2 parrot/imcc/debug.c
Index: debug.c
===================================================================
RCS file: /cvs/public/parrot/imcc/debug.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -w -r1.33 -r1.34
--- debug.c 8 May 2004 08:27:52 -0000 1.33
+++ debug.c 8 Aug 2004 08:22:16 -0000 1.34
@@ -259,13 +259,14 @@
fprintf(stderr, "\n");
}
+extern int ig_test(int i, int j, int N, unsigned int* graph); /* reg_alloc.c */
void
dump_interference_graph(IMC_Unit * unit)
{
int x, y, cnt;
SymReg *r;
SymReg** reglist = unit->reglist;
- SymReg** interference_graph = unit->interference_graph;
+ unsigned int* interference_graph = unit->interference_graph;
int n_symbols = unit->n_symbols;
fprintf(stderr, "\nDumping the Interf. graph:"
@@ -279,7 +280,9 @@
for (y = 0; y < n_symbols; y++) {
- r = interference_graph[x*n_symbols + y];
+ if (! ig_test(x, y, n_symbols, interference_graph))
+ continue;
+ r = unit->reglist[y];
if ( r && !r->simplified) {
fprintf(stderr, "%s ", r->name);
cnt++;
1.19 +5 -3 parrot/imcc/reg_alloc.c
Index: reg_alloc.c
===================================================================
RCS file: /cvs/public/parrot/imcc/reg_alloc.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -w -r1.18 -r1.19
--- reg_alloc.c 8 Aug 2004 00:18:15 -0000 1.18
+++ reg_alloc.c 8 Aug 2004 08:22:16 -0000 1.19
@@ -83,7 +83,8 @@
*word &= ~(1 << bit_ofs);
}
-static int ig_test(int i, int j, int N, unsigned int* graph)
+int ig_test(int i, int j, int N, unsigned int* graph);
+int ig_test(int i, int j, int N, unsigned int* graph)
{
int bit_ofs;
unsigned int* word = ig_get_word(i, j, N, graph, &bit_ofs);
@@ -92,8 +93,9 @@
static unsigned int* ig_allocate(int N)
{
- // size is N*N bits, but we want don't want to allocate a partial
- // word, so round up to the nearest multiple of sizeof(int).
+ /* size is N*N bits, but we want don't want to allocate a partial
+ * word, so round up to the nearest multiple of sizeof(int).
+ */
int need_bits = N * N;
int num_words = (need_bits + sizeof(int) - 1) / sizeof(int);
return (unsigned int*) calloc(num_words, sizeof(int));
1.123 +0 -0 parrot/src/dod.c
Index: dod.c
===================================================================
RCS file: /cvs/public/parrot/src/dod.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -w -r1.122 -r1.123
--- dod.c 7 Aug 2004 12:56:37 -0000 1.122
+++ dod.c 8 Aug 2004 08:22:20 -0000 1.123
@@ -1,6 +1,6 @@
/*
Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
-$Id: dod.c,v 1.122 2004/08/07 12:56:37 leo Exp $
+$Id: dod.c,v 1.123 2004/08/08 08:22:20 leo Exp $
=head1 NAME