summary refs log tree commit diff
path: root/lisc/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'lisc/main.c')
-rw-r--r--lisc/main.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/lisc/main.c b/lisc/main.c
index d3688ad..81bbb72 100644
--- a/lisc/main.c
+++ b/lisc/main.c
@@ -113,6 +113,28 @@ main(int ac, char *av[])
 		goto RPODump;
 		break;
 	}
+	case 'e': {
+		int n;
+
+		fprintf(stderr, "[Testing Code Emission]\n");
+		fillrpo(fn);
+		fillpreds(fn);
+		filllive(fn);
+		fillcost(fn);
+		spill(fn);
+		rega(fn);
+		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];
+		emitfn(fn, stdout);
+		pr = 0;
+		break;
+	}
 	default:
 		break;
 	}