diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-04-01 10:41:53 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-04-01 10:41:53 -0400 |
commit | e7825e70d532d16f1598eaa598342af373716418 (patch) | |
tree | d29fa3899d7d141da8fe91ee5ae1cd252b3d7e7b | |
parent | 6a2c88054318290f4b4aeb6f24d710a3f99c6415 (diff) | |
download | roux-e7825e70d532d16f1598eaa598342af373716418.tar.gz |
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.
-rw-r--r-- | all.h | 2 | ||||
-rw-r--r-- | live.c | 3 | ||||
-rw-r--r-- | spill.c | 7 | ||||
-rw-r--r-- | util.c | 4 |
4 files changed, 7 insertions, 9 deletions
diff --git a/all.h b/all.h index a140ef4..cecc754 100644 --- 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 index c61e987..cd02aec 100644 --- 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 index 8684993..bda7532 100644 --- 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 index 238c996..fb85dc1 100644 --- 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++) |