factor some subtyping logic in clsmerge()

This commit is contained in:
Quentin Carbonneaux 2016-04-18 14:03:06 -04:00
parent c6f3adc52d
commit c43a07086b
4 changed files with 32 additions and 18 deletions

8
ssa.c
View file

@ -288,7 +288,8 @@ phiins(Fn *fn)
Ins *i;
Phi *p;
Ref r;
int t, n, k, nt;
int t, n, nt;
short k;
bsinit(u, fn->nblk);
bsinit(defs, fn->nblk);
@ -324,9 +325,8 @@ phiins(Fn *fn)
bsset(u, b->id);
*--bp = b;
}
if (k == -1)
k = i->cls;
assert(k == i->cls);
if (clsmerge(&k, i->cls))
die("invalid input");
}
}
}