commit 1bb7652484e1c7ca2cd7fcab858b4bbb18509879
parent f3301026fa404c68c7ad399b5a56a5135b88af04
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Fri, 24 Feb 2017 09:48:53 -0500
deduplicate loadsz & storesz
Diffstat:
3 files changed, 4 insertions(+), 27 deletions(-)
diff --git a/all.h b/all.h
@@ -576,6 +576,8 @@ int alias(Ref, int, Ref, int, int *, Fn *);
int escapes(Ref, Fn *);
/* load.c */
+int loadsz(Ins *);
+int storesz(Ins *);
void loadopt(Fn *);
/* ssa.c */
diff --git a/load.c b/load.c
@@ -42,7 +42,7 @@ static uint inum; /* current insertion number */
static Insert *ilog; /* global insertion log */
static uint nlog; /* number of entries in the log */
-static int
+int
loadsz(Ins *l)
{
switch (l->op) {
@@ -54,7 +54,7 @@ loadsz(Ins *l)
die("unreachable");
}
-static int
+int
storesz(Ins *s)
{
switch (s->op) {
diff --git a/mem.c b/mem.c
@@ -1,30 +1,5 @@
#include "all.h"
-static int
-loadsz(Ins *l)
-{
- switch (l->op) {
- case Oloadsb: case Oloadub: return 1;
- case Oloadsh: case Oloaduh: return 2;
- case Oloadsw: case Oloaduw: return 4;
- case Oload: return KWIDE(l->cls) ? 8 : 4;
- }
- die("unreachable");
-}
-
-static int
-storesz(Ins *s)
-{
- switch (s->op) {
- case Ostoreb: return 1;
- case Ostoreh: return 2;
- case Ostorew: case Ostores: return 4;
- case Ostorel: case Ostored: return 8;
- }
- die("unreachable");
-}
-
-
/* require use, maintains use counts */
void
memopt(Fn *fn)