diff options
| author | Quentin Carbonneaux <[email protected]> | 2016-04-19 11:07:07 -0400 |
|---|---|---|
| committer | Quentin Carbonneaux <[email protected]> | 2016-04-19 11:07:54 -0400 |
| commit | 43967b6306aa18903b3ba2b00e701facaf306840 (patch) | |
| tree | 146330b3da69d9a27f83fe1db93dd09f2c0a6764 /copy.c | |
| parent | 20c9ec62ffde331fad41c5f05cc05a20b7aa08fa (diff) | |
use assert for ssa invariants in fold/copy
Diffstat (limited to 'copy.c')
| -rw-r--r-- | copy.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -65,11 +65,9 @@ visitins(Ins *i, Ref *cp, RList **w) } static void -subst(Ref *r, Ref *cp, Fn *fn) +subst(Ref *r, Ref *cp) { - if (rtype(*r) == RTmp && req(copyof(*r, cp), R)) - err("temporary %%%s is ill-defined", - fn->tmp[r->val].name); + assert((rtype(*r) != RTmp || !req(copyof(*r, cp), R)) && "ssa invariant broken"); *r = copyof(*r, cp); } @@ -121,7 +119,7 @@ copy(Fn *fn) continue; } for (a=0; a<p->narg; a++) - subst(&p->arg[a], cp, fn); + subst(&p->arg[a], cp); pp=&p->link; } for (i=b->ins; i-b->ins < b->nins; i++) { @@ -131,9 +129,9 @@ copy(Fn *fn) continue; } for (a=0; a<2; a++) - subst(&i->arg[a], cp, fn); + subst(&i->arg[a], cp); } - subst(&b->jmp.arg, cp, fn); + subst(&b->jmp.arg, cp); } if (debug['C']) { fprintf(stderr, "\n> Copy information:"); |
