qbe

Internal scc patchset buffer for QBE
Log | Files | Refs | README | LICENSE

commit e7825e70d532d16f1598eaa598342af373716418
parent 6a2c88054318290f4b4aeb6f24d710a3f99c6415
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date:   Fri,  1 Apr 2016 10:41:53 -0400

tradeoff the type of bsiter()

int is used all over the place for temporaries,
maybe this should be changed, I don't know.

Another thing to consider is that temporaries
are currently on 12 bits (and will be on 29
or 30 bits in the future), so int will always be
safe to store them.  We just loose the free
invariant of non-negativity.

Diffstat:
Mall.h | 2+-
Mlive.c | 3+--
Mspill.c | 7+++----
Mutil.c | 4++--
4 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/all.h b/all.h @@ -510,7 +510,7 @@ void bsunion(BSet *, BSet *); void bsinter(BSet *, BSet *); void bsdiff(BSet *, BSet *); int bsequal(BSet *, BSet *); -int bsiter(BSet *, uint *); +int bsiter(BSet *, int *); static inline int bshas(BSet *bs, uint elt) diff --git a/live.c b/live.c @@ -70,8 +70,7 @@ filllive(Fn *f) { Blk *b; Ins *i; - int k, m[2], n, chg, nlv[2]; - uint t; + int k, t, m[2], n, chg, nlv[2]; short *phi; BSet u[1], v[1]; Mem *ma; diff --git a/spill.c b/spill.c @@ -178,8 +178,7 @@ static void limit(BSet *b, int k, BSet *f) { static int *tarr, maxt; - int i, nt; - uint t; + int i, t, nt; nt = bscount(b); if (nt <= k) @@ -222,7 +221,7 @@ limit2(BSet *b1, int k1, int k2, BSet *fst) static void sethint(BSet *u, bits r) { - uint t; + int t; for (t=Tmp0; bsiter(u, &t); t++) tmp[phicls(t, tmp)].hint.m |= r; @@ -231,7 +230,7 @@ sethint(BSet *u, bits r) static void reloads(BSet *u, BSet *v) { - uint t; + int t; for (t=Tmp0; bsiter(u, &t); t++) if (!bshas(v, t)) diff --git a/util.c b/util.c @@ -313,7 +313,7 @@ bszero(BSet *bs) * */ int -bsiter(BSet *bs, uint *elt) +bsiter(BSet *bs, int *elt) { uint i; @@ -332,7 +332,7 @@ bsiter(BSet *bs, uint *elt) void dumpts(BSet *bs, Tmp *tmp, FILE *f) { - uint t; + int t; fprintf(f, "["); for (t=Tmp0; bsiter(bs, &t); t++)