summary refs log tree commit diff
path: root/lisc/live.c
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-11-09 21:29:22 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-11-09 21:29:55 -0500
commita8d5c13a3ec29f07e93613cdabaee2e05348608c (patch)
tree41b433fb735d8c0a35bc405e03debf8c0d827472 /lisc/live.c
parent25d15ca89b167d73d674d7840f7e381674eaa57b (diff)
downloadroux-a8d5c13a3ec29f07e93613cdabaee2e05348608c.tar.gz
precise OCall test in liveness
Diffstat (limited to 'lisc/live.c')
-rw-r--r--lisc/live.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lisc/live.c b/lisc/live.c
index d355fd6..dc8060d 100644
--- a/lisc/live.c
+++ b/lisc/live.c
@@ -111,7 +111,8 @@ Again:
 		bset(b->jmp.arg, b, &nlv, phi, f->tmp);
 		b->nlive = nlv;
 		for (i=&b->ins[b->nins]; i!=b->ins;) {
-			if ((--i)->op == OCall) {
+			if ((--i)->op == OCall)
+			if (rtype(i->arg[1]) == RACall) {
 				b->in.t[0] &= ~calldef(*i, &m);
 				nlv -= m;
 				if (nlv + NRSave > b->nlive)