commit 5ad565e2990fbcd8d9f61413da072457b41af88b
parent bb2541693e0a3a621202b75f08a5d5ffa28a13a7
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Wed, 22 Jul 2015 04:50:52 -0400
improve output, add debug array
Diffstat:
2 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/lisc/lisc.h b/lisc/lisc.h
@@ -158,6 +158,10 @@ struct Fn {
};
+/* main.c */
+extern char debug['Z'+1];
+void dumpss(Bits *, Sym *, FILE *);
+
/* parse.c */
extern OpDesc opdesc[];
void diag(char *);
diff --git a/lisc/main.c b/lisc/main.c
@@ -1,14 +1,20 @@
#include "lisc.h"
-static void
-dumprset(Bits *b, Fn *fn)
+char debug['Z'+1] = {
+ ['S'] = 1, /* spiller */
+};
+
+void
+dumpss(Bits *b, Sym *s, FILE *f)
{
int t;
- for (t=Tmp0; t<fn->ntmp; t++)
+ fprintf(f, "[");
+ for (t=Tmp0; t<BITS*NBit; t++)
if (BGET(*b, t))
- printf(" %s", fn->sym[t].name);
+ fprintf(f, " %s", s[t].name);
+ fprintf(f, " ]\n");
}
int
@@ -59,12 +65,10 @@ main(int ac, char *av[])
filllive(fn);
for (b=fn->start; b; b=b->link) {
printf("> Block %s\n", b->name);
- printf("\t in: [");
- dumprset(&b->in, fn);
- printf(" ]\n");
- printf("\tout: [");
- dumprset(&b->out, fn);
- printf(" ]\n");
+ printf("\t in: ");
+ dumpss(&b->in, fn->sym, stdout);
+ printf("\tout: ");
+ dumpss(&b->out, fn->sym, stdout);
printf("\tnlive: %d\n", b->nlive);
}
pr = 0;
@@ -79,17 +83,16 @@ main(int ac, char *av[])
fillpreds(fn);
filllive(fn);
fillcost(fn);
- fprintf(stderr, "> Spill costs:\n");
+ printf("> Spill costs:\n");
for (t=Tmp0; t<fn->ntmp; t++)
- fprintf(stderr, "\t%s: %d\n",
+ printf("\t%-10s %d\n",
fn->sym[t].name,
fn->sym[t].cost);
spill(fn);
- fprintf(stderr, "\n> Block information:\n");
+ printf("\n> Block information:\n");
for (b=fn->start; b; b=b->link) {
- printf("\t%10s (% 5d) [", b->name, b->loop);
- dumprset(&b->out, fn);
- printf(" ]\n");
+ printf("\t%-10s (% 5d) ", b->name, b->loop);
+ dumpss(&b->out, fn->sym, stdout);
}
pr = 0;
break;