summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-04-01 10:41:53 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-04-01 10:41:53 -0400
commite7825e70d532d16f1598eaa598342af373716418 (patch)
treed29fa3899d7d141da8fe91ee5ae1cd252b3d7e7b
parent6a2c88054318290f4b4aeb6f24d710a3f99c6415 (diff)
downloadroux-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.h2
-rw-r--r--live.c3
-rw-r--r--spill.c7
-rw-r--r--util.c4
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++)