aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir
diff options
context:
space:
mode:
Diffstat (limited to 'ir')
-rw-r--r--ir/fold.c13
-rw-r--r--ir/ir.c2
-rw-r--r--ir/stack.c1
3 files changed, 7 insertions, 9 deletions
diff --git a/ir/fold.c b/ir/fold.c
index f5150c0..321797b 100644
--- a/ir/fold.c
+++ b/ir/fold.c
@@ -71,15 +71,14 @@ foldflt(enum op op, enum irclass k, union ref lr, union ref rr)
case Osub: x = l - r; break;
case Omul: x = l * r; break;
case Odiv: x = l / r; break;
- case Oequ: xi = l == r; break;
- case Oneq: xi = l != r; break;
- case Olth: xi = l < r; break;
- case Ogth: xi = l > r; break;
- case Olte: xi = l <= r; break;
- case Ogte: xi = l >= r; break;
+ case Oequ: xi = l == r; goto Cmp;
+ case Oneq: xi = l != r; goto Cmp;
+ case Olth: xi = l < r; goto Cmp;
+ case Ogth: xi = l > r; goto Cmp;
+ case Olte: xi = l <= r; goto Cmp;
+ case Ogte: xi = l >= r; Cmp: return mkref(RICON, xi);
default: assert(0);
}
- if (oiscmp(op)) return mkref(RICON, xi);
if (!w) x = (float)x;
return mkfltcon(k, x);
}
diff --git a/ir/ir.c b/ir/ir.c
index b5f9de8..136935f 100644
--- a/ir/ir.c
+++ b/ir/ir.c
@@ -663,7 +663,7 @@ irfini(struct function *fn)
if (objout.code)
mctarg->emit(fn);
-Fin:
+//Fin:
freearena(fn->passarena);
freefn(fn);
}
diff --git a/ir/stack.c b/ir/stack.c
index 45023d1..1dc29cd 100644
--- a/ir/stack.c
+++ b/ir/stack.c
@@ -3,7 +3,6 @@
void
lowerstack(struct function *fn)
{
- extern int ninstr;
fn->stksiz = 0;
FREQUIRE(FNUSE);