commit d14e885325071bcac823053c1bcc4b4ed0d35145
parent e7825e70d532d16f1598eaa598342af373716418
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Fri, 1 Apr 2016 10:51:06 -0400
cheap massive performance gain on brainfuck
Diffstat:
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/rega.c b/rega.c
@@ -426,7 +426,7 @@ doblk(Blk *b, RMap *cur)
void
rega(Fn *fn)
{
- int j, n, t, r, r1, x, rl[Tmp0];
+ int j, t, n, r, r1, x, rl[Tmp0];
Blk *b, *b1, *s, ***ps, *blist;
RMap *end, *beg, cur, old;
Ins *i;
@@ -463,15 +463,10 @@ rega(Fn *fn)
cur.n = 0;
bszero(cur.b);
for (x=0; x<2; x++)
- for (t=Tmp0; t<fn->ntmp; t++) {
- assert(bshas(b->out, t) ||
- !bshas(cur.b, t));
- if (bshas(b->out, t))
- if (!bshas(cur.b, t))
+ for (t=Tmp0; bsiter(b->out, &t); t++)
if (x || (r=*hint(t)) != -1)
if (x || !bshas(cur.b, r))
ralloc(&cur, t);
- }
rcopy(&end[n], &cur);
doblk(b, &cur);
bscopy(b->in, cur.b);