summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-07-16 03:25:12 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-09-15 23:01:28 -0400
commit77bdb3ae9e925c9063f10ff9e1e5cf8ac66538ce (patch)
treedb0fc1f1b9d0e5a093829f4a8d46a100c3cabffb
parent7295adcadeae8dadeb09bd412fd15c48779b82cc (diff)
downloadroux-77bdb3ae9e925c9063f10ff9e1e5cf8ac66538ce.tar.gz
move main function out of parse.c
-rw-r--r--lisc/Makefile2
-rw-r--r--lisc/main.c79
-rw-r--r--lisc/parse.c78
3 files changed, 80 insertions, 79 deletions
diff --git a/lisc/Makefile b/lisc/Makefile
index fcf91a5..6903b5d 100644
--- a/lisc/Makefile
+++ b/lisc/Makefile
@@ -1,5 +1,5 @@
BIN = lisc
-OBJ = parse.o ssa.o live.o
+OBJ = main.o parse.o ssa.o live.o
CFLAGS = -Wall -Wextra -std=c99 -g
diff --git a/lisc/main.c b/lisc/main.c
new file mode 100644
index 0000000..bab3276
--- /dev/null
+++ b/lisc/main.c
@@ -0,0 +1,79 @@
+#include "lisc.h"
+
+
+static void
+dumprset(Bits *b, Fn *fn)
+{
+ int t;
+
+ for (t=Tmp0; t<fn->ntmp; t++)
+ if (BGET(*b, t))
+ printf(" %s", fn->sym[t].name);
+}
+
+int
+main(int ac, char *av[])
+{
+ int opt, pr;
+ Fn *fn;
+
+ fn = parsefn(stdin);
+
+ pr = 1;
+ opt = 0;
+ if (ac > 1 && av[1][0] == '-')
+ opt = av[1][1];
+
+ switch (opt) {
+ case 'f': {
+ int tx, ntmp;
+
+ fprintf(stderr, "[Testing SSA Reconstruction:");
+ fillpreds(fn);
+ for (ntmp=fn->ntmp, tx=Tmp0; tx<ntmp; tx++) {
+ fprintf(stderr, " %s", fn->sym[tx].name);
+ ssafix(fn, tx);
+ }
+ fprintf(stderr, "]\n");
+ break;
+ }
+ case 'r': {
+ int n;
+
+ fprintf(stderr, "[Testing RPO]\n");
+ fillrpo(fn);
+ assert(fn->rpo[0] == fn->start);
+ for (n=0;; n++)
+ if (n == fn->nblk-1) {
+ fn->rpo[n]->link = 0;
+ break;
+ } else
+ fn->rpo[n]->link = fn->rpo[n+1];
+ break;
+ }
+ case 'l': {
+ Blk *b;
+
+ fprintf(stderr, "[Testing Liveness]\n");
+ fillrpo(fn);
+ 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");
+ }
+ pr = 0;
+ break;
+ }
+ default:
+ break;
+ }
+
+ if (pr)
+ printfn(fn, stdout);
+ return 0;
+}
diff --git a/lisc/parse.c b/lisc/parse.c
index 47f9ec8..7a9da59 100644
--- a/lisc/parse.c
+++ b/lisc/parse.c
@@ -532,81 +532,3 @@ printfn(Fn *fn, FILE *f)
}
}
}
-
-
-static void
-dumprset(Bits *b, Fn *fn)
-{
- int t;
-
- for (t=Tmp0; t<fn->ntmp; t++)
- if (BGET(*b, t))
- printf(" %s", fn->sym[t].name);
-}
-
-int
-main(int ac, char *av[])
-{
- int opt, pr;
- Fn *fn;
-
- fn = parsefn(stdin);
-
- pr = 1;
- opt = 0;
- if (ac > 1 && av[1][0] == '-')
- opt = av[1][1];
-
- switch (opt) {
- case 'f': {
- int tx, ntmp;
-
- fprintf(stderr, "[Testing SSA Reconstruction:");
- fillpreds(fn);
- for (ntmp=fn->ntmp, tx=Tmp0; tx<ntmp; tx++) {
- fprintf(stderr, " %s", fn->sym[tx].name);
- ssafix(fn, tx);
- }
- fprintf(stderr, "]\n");
- break;
- }
- case 'r': {
- int n;
-
- fprintf(stderr, "[Testing RPO]\n");
- fillrpo(fn);
- assert(fn->rpo[0] == fn->start);
- for (n=0;; n++)
- if (n == fn->nblk-1) {
- fn->rpo[n]->link = 0;
- break;
- } else
- fn->rpo[n]->link = fn->rpo[n+1];
- break;
- }
- case 'l': {
- Blk *b;
-
- fprintf(stderr, "[Testing Liveness]\n");
- fillrpo(fn);
- 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");
- }
- pr = 0;
- break;
- }
- default:
- break;
- }
-
- if (pr)
- printfn(fn, stdout);
- return 0;
-}