Warning hunt on ego.
authorManoel Trapier <godzil@godzil.net>
Tue, 19 Mar 2013 17:45:41 +0000 (18:45 +0100)
committerManoël Trapier <godzil@MacBook-Pro.home>
Wed, 24 Jun 2015 22:41:47 +0000 (23:41 +0100)
26 files changed:
util/ego/bo/bo.c
util/ego/ca/ca.c
util/ego/cf/cf.c
util/ego/cj/cj.c
util/ego/cs/cs_getent.c
util/ego/cs/cs_partit.c
util/ego/cs/cs_profit.c
util/ego/em_ego/em_ego.c
util/ego/ic/ic_lookup.c
util/ego/ic/ic_lookup.h
util/ego/il/il.c
util/ego/il/il1_anal.c
util/ego/il/il1_cal.c
util/ego/il/il2_aux.c
util/ego/il/il_aux.h
util/ego/ra/ra.c
util/ego/ra/ra_items.c
util/ego/ra/ra_lifet.c
util/ego/ra/ra_pack.c
util/ego/ra/ra_xform.c
util/ego/share/debug.h
util/ego/share/files.c
util/ego/share/makecldef.c
util/ego/share/put.c
util/ego/share/types.h
util/ego/sr/sr.c

index 75631a9..a4be362 100644 (file)
@@ -278,7 +278,6 @@ static void bo_cleanproc(proc_p p)
 
        loop_p lp;
        Lindex pi;
-       bblock_p b;
 
        for (pi = Lfirst(p->p_loops); pi != (Lindex) 0;
           pi = Lnext(pi,p->p_loops)) {
index 8619536..8aba6a5 100644 (file)
@@ -161,7 +161,6 @@ static void new_name(char **s)
 {
        static int nn = 0;
        char buf[20];
-       int len = strlen(*s);
 
        oldcore(*s, len+1);
        buf[0] = '_';
index 4d272bd..6b09fc1 100644 (file)
@@ -26,6 +26,7 @@
 #include "../share/get.h"
 #include "../share/put.h"
 #include "../share/def.h"
+#include "../share/aux.h"
 #include "cf.h"
 #include "cf_succ.h"
 #include "cf_idom.h"
index f910500..6fdb0d6 100644 (file)
@@ -56,7 +56,7 @@
 
 static int Scj;  /* number of optimizations found */
 
-static void showinstr(line_p lnp);
+/* static void showinstr(line_p lnp); */
 
 #define DLINK(l1,l2)   l1->l_next=l2; l2->l_prev=l1
 
@@ -320,7 +320,7 @@ int main(int argc, char *argv[])
 /******
  * Debugging stuff
  */
-
+#if 0
 extern char em_mnem[]; /* The mnemonics of the EM instructions. */
 
 static void showinstr(line_p lnp)
@@ -350,3 +350,5 @@ static void showinstr(line_p lnp)
     }
     printf("\n");
 } /* showinstr */
+
+#endif
\ No newline at end of file
index ef86945..5e0210b 100644 (file)
@@ -24,43 +24,43 @@ STATIC struct inf_entity {
        byte    inf_used;       /* Kind of entity used by key.  */
        byte    inf_size;       /* Indication of the size.      */
 } inf_table[] = {
-       op_adp, ENAOFFSETTED,   PS,
-       op_dee, ENEXTERNAL,     WS1,
-       op_del, ENLOCAL,        WS1,
-       op_ine, ENEXTERNAL,     WS1,
-       op_inl, ENLOCAL,        WS1,
-       op_lae, ENAEXTERNAL,    PS,
-       op_lal, ENALOCAL,       PS,
-       op_lar, ENARRELEM,      ARDESC3,
-       op_ldc, ENCONST,        WS2,
-       op_lde, ENEXTERNAL,     WS2,
-       op_ldf, ENOFFSETTED,    WS2,
-       op_ldl, ENLOCAL,        WS2,
-       op_lil, ENINDIR,        WS1,
-       op_lim, ENIGNMASK,      WS1,
-       op_loc, ENCONST,        WS1,
-       op_loe, ENEXTERNAL,     WS1,
-       op_lof, ENOFFSETTED,    WS1,
-       op_loi, ENINDIR,        ARGW,
-       op_lol, ENLOCAL,        WS1,
-       op_lpi, ENPROC,         PS,
-       op_lxa, ENAARGBASE,     PS,
-       op_lxl, ENALOCBASE,     PS,
-       op_sar, ENARRELEM,      ARDESC3,
-       op_sde, ENEXTERNAL,     WS2,
-       op_sdf, ENOFFSETTED,    WS2,
-       op_sdl, ENLOCAL,        WS2,
-       op_sil, ENINDIR,        WS1,
-       op_sim, ENIGNMASK,      WS1,
-       op_ste, ENEXTERNAL,     WS1,
-       op_stf, ENOFFSETTED,    WS1,
-       op_sti, ENINDIR,        ARGW,
-       op_stl, ENLOCAL,        WS1,
-       op_zer, ENCONST,        ARGW,
-       op_zre, ENEXTERNAL,     WS1,
-       op_zrf, ENFZER,         ARGW,
-       op_zrl, ENLOCAL,        WS1,
-       op_nop  /* Delimitor. */
+       { op_adp,       ENAOFFSETTED,   PS },
+       { op_dee,       ENEXTERNAL,     WS1 },
+       { op_del,       ENLOCAL,        WS1 },
+       { op_ine,       ENEXTERNAL,     WS1 },
+       { op_inl,       ENLOCAL,        WS1 },
+       { op_lae,       ENAEXTERNAL,    PS },
+       { op_lal,       ENALOCAL,       PS },
+       { op_lar,       ENARRELEM,      ARDESC3 },
+       { op_ldc,       ENCONST,        WS2 },
+       { op_lde,       ENEXTERNAL,     WS2 },
+       { op_ldf,       ENOFFSETTED,    WS2 },
+       { op_ldl,       ENLOCAL,        WS2 },
+       { op_lil,       ENINDIR,        WS1 },
+       { op_lim,       ENIGNMASK,      WS1 },
+       { op_loc,       ENCONST,        WS1 },
+       { op_loe,       ENEXTERNAL,     WS1 },
+       { op_lof,       ENOFFSETTED,    WS1 },
+       { op_loi,       ENINDIR,        ARGW },
+       { op_lol,       ENLOCAL,        WS1 },
+       { op_lpi,       ENPROC,         PS },
+       { op_lxa,       ENAARGBASE,     PS },
+       { op_lxl,       ENALOCBASE,     PS },
+       { op_sar,       ENARRELEM,      ARDESC3 },
+       { op_sde,       ENEXTERNAL,     WS2 },
+       { op_sdf,       ENOFFSETTED,    WS2 },
+       { op_sdl,       ENLOCAL,        WS2 },
+       { op_sil,       ENINDIR,        WS1 },
+       { op_sim,       ENIGNMASK,      WS1 },
+       { op_ste,       ENEXTERNAL,     WS1 },
+       { op_stf,       ENOFFSETTED,    WS1 },
+       { op_sti,       ENINDIR,        ARGW },
+       { op_stl,       ENLOCAL,        WS1 },
+       { op_zer,       ENCONST,        ARGW },
+       { op_zre,       ENEXTERNAL,     WS1 },
+       { op_zrf,       ENFZER,         ARGW },
+       { op_zrl,       ENLOCAL,        WS1 },
+       { op_nop,       0,                      0 }     /* Delimitor. */
 };
 
 #define INFKEY(ip)     (ip->inf_instr & BMASK)
index fa99fe1..34faad0 100644 (file)
@@ -38,140 +38,140 @@ static struct {
     byte i_av;         /* Idem for result of operators. */
     byte i_regtype;    /* ANY, PTR, FLT. */
 } info[] = {
-               XXX,            XXX,    XXX,    XXX,    XXX,
-/* aar */      TERNAIR_OP,     XXX,    XXX,    PS,     PTR,
-/* adf */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   FLT,
-/* adi */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* adp */      EXPENSIVE_LOAD, XXX,    XXX,    XXX,    PTR,
-/* ads */      BINAIR_OP,      PS,     ARGW,   PS,     PTR,
-/* adu */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* and */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* asp */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* ass */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* beq */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* bge */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* bgt */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* ble */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* blm */      HOPELESS,       XXX,    XXX,    XXX,    XXX,
-/* bls */      HOPELESS,       XXX,    XXX,    XXX,    XXX,
-/* blt */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* bne */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* bra */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* cai */      SIDE_EFFECTS,   XXX,    XXX,    XXX,    XXX,
-/* cal */      SIDE_EFFECTS,   XXX,    XXX,    XXX,    XXX,
-/* cff */      TERNAIR_OP,     XXX,    XXX,    CVT,    FLT,
-/* cfi */      TERNAIR_OP,     XXX,    XXX,    CVT,    ANY,
-/* cfu */      TERNAIR_OP,     XXX,    XXX,    CVT,    ANY,
-/* cif */      TERNAIR_OP,     XXX,    XXX,    CVT,    FLT,
-/* cii */      TERNAIR_OP,     XXX,    XXX,    CVT,    ANY,
-/* ciu */      TERNAIR_OP,     XXX,    XXX,    CVT,    ANY,
-/* cmf */      BINAIR_OP,      ARGW,   ARGW,   WS,     ANY,
-/* cmi */      BINAIR_OP,      ARGW,   ARGW,   WS,     ANY,
-/* cmp */      BINAIR_OP,      PS,     PS,     WS,     ANY,
-/* cms */      BINAIR_OP,      ARGW,   ARGW,   WS,     ANY,
-/* cmu */      BINAIR_OP,      ARGW,   ARGW,   WS,     ANY,
-/* com */      UNAIR_OP,       ARGW,   XXX,    ARGW,   ANY,
-/* csa */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* csb */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* cuf */      TERNAIR_OP,     XXX,    XXX,    CVT,    FLT,
-/* cui */      TERNAIR_OP,     XXX,    XXX,    CVT,    ANY,
-/* cuu */      TERNAIR_OP,     XXX,    XXX,    CVT,    ANY,
-/* dch */      UNAIR_OP,       PS,     XXX,    PS,     PTR,
-/* dec */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* dee */      KILL_ENTITY,    XXX,    XXX,    XXX,    XXX,
-/* del */      KILL_ENTITY,    XXX,    XXX,    XXX,    XXX,
-/* dup */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* dus */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* dvf */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   FLT,
-/* dvi */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* dvu */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* exg */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* fef */      UNAIR_OP,       ARGW,   XXX,    FEF,    XXX,
-/* fif */      BINAIR_OP,      ARGW,   ARGW,   FIF,    XXX,
-/* fil */      IGNORE,         XXX,    XXX,    XXX,    XXX,
-/* gto */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* inc */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* ine */      KILL_ENTITY,    XXX,    XXX,    XXX,    XXX,
-/* inl */      KILL_ENTITY,    XXX,    XXX,    XXX,    XXX,
-/* inn */      BINAIR_OP,      ARGW,   WS,     WS,     ANY,
-/* ior */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* lae */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lal */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lar */      LOAD_ARRAY,     XXX,    XXX,    XXX,    ANY,
-/* ldc */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lde */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* ldf */      EXPENSIVE_LOAD, XXX,    XXX,    XXX,    ANY,
-/* ldl */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lfr */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* lil */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lim */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lin */      IGNORE,         XXX,    XXX,    XXX,    XXX,
-/* lni */      IGNORE,         XXX,    XXX,    XXX,    XXX,
-/* loc */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* loe */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lof */      EXPENSIVE_LOAD, XXX,    XXX,    XXX,    ANY,
-/* loi */      EXPENSIVE_LOAD, XXX,    XXX,    XXX,    ANY,
-/* lol */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lor */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* los */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* lpb */      UNAIR_OP,       PS,     XXX,    PS,     PTR,
-/* lpi */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* lxa */      EXPENSIVE_LOAD, XXX,    XXX,    XXX,    PTR,
-/* lxl */      EXPENSIVE_LOAD, XXX,    XXX,    XXX,    PTR,
-/* mlf */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   FLT,
-/* mli */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* mlu */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* mon */      HOPELESS,       XXX,    XXX,    XXX,    XXX,
-/* ngf */      UNAIR_OP,       ARGW,   XXX,    ARGW,   FLT,
-/* ngi */      UNAIR_OP,       ARGW,   XXX,    ARGW,   ANY,
-/* nop */      HOPELESS,       XXX,    XXX,    XXX,    XXX,
-/* rck */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* ret */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* rmi */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* rmu */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* rol */      BINAIR_OP,      ARGW,   WS,     ARGW,   ANY,
-/* ror */      BINAIR_OP,      ARGW,   WS,     ARGW,   ANY,
-/* rtt */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* sar */      STORE_ARRAY,    XXX,    XXX,    XXX,    XXX,
-/* sbf */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   FLT,
-/* sbi */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* sbs */      BINAIR_OP,      PS,     PS,     ARGW,   ANY,
-/* sbu */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* sde */      STORE_DIRECT,   XXX,    XXX,    XXX,    XXX,
-/* sdf */      STORE_INDIR,    XXX,    XXX,    XXX,    XXX,
-/* sdl */      STORE_DIRECT,   XXX,    XXX,    XXX,    XXX,
-/* set */      UNAIR_OP,       WS,     XXX,    ARGW,   ANY,
-/* sig */      FIDDLE_STACK,   XXX,    XXX,    XXX,    XXX,
-/* sil */      STORE_INDIR,    XXX,    XXX,    XXX,    XXX,
-/* sim */      STORE_DIRECT,   XXX,    XXX,    XXX,    XXX,
-/* sli */      BINAIR_OP,      ARGW,   WS,     ARGW,   ANY,
-/* slu */      BINAIR_OP,      ARGW,   WS,     ARGW,   ANY,
-/* sri */      BINAIR_OP,      ARGW,   WS,     ARGW,   ANY,
-/* sru */      BINAIR_OP,      ARGW,   WS,     ARGW,   ANY,
-/* ste */      STORE_DIRECT,   XXX,    XXX,    XXX,    XXX,
-/* stf */      STORE_INDIR,    XXX,    XXX,    XXX,    XXX,
-/* sti */      STORE_INDIR,    XXX,    XXX,    XXX,    XXX,
-/* stl */      STORE_DIRECT,   XXX,    XXX,    XXX,    XXX,
-/* str */      HOPELESS,       XXX,    XXX,    XXX,    XXX,
-/* sts */      HOPELESS,       XXX,    XXX,    XXX,    XXX,
-/* teq */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* tge */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* tgt */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* tle */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* tlt */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* tne */      UNAIR_OP,       WS,     XXX,    WS,     ANY,
-/* trp */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* xor */      BINAIR_OP,      ARGW,   ARGW,   ARGW,   ANY,
-/* zeq */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* zer */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* zge */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* zgt */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* zle */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* zlt */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* zne */      BBLOCK_END,     XXX,    XXX,    XXX,    XXX,
-/* zre */      KILL_ENTITY,    XXX,    XXX,    XXX,    XXX,
-/* zrf */      SIMPLE_LOAD,    XXX,    XXX,    XXX,    XXX,
-/* zrl */      KILL_ENTITY,    XXX,    XXX,    XXX,    XXX
+                       { XXX,          XXX,    XXX,    XXX,    XXX },
+ /* aar */     { TERNAIR_OP,   XXX,    XXX,    PS,     PTR },
+ /* adf */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   FLT },
+ /* adi */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* adp */     { EXPENSIVE_LOAD,       XXX,    XXX,    XXX,    PTR },
+ /* ads */     { BINAIR_OP,    PS,     ARGW,   PS,     PTR },
+ /* adu */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* and */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* asp */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* ass */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* beq */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* bge */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* bgt */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* ble */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* blm */     { HOPELESS,     XXX,    XXX,    XXX,    XXX },
+ /* bls */     { HOPELESS,     XXX,    XXX,    XXX,    XXX },
+ /* blt */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* bne */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* bra */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* cai */     { SIDE_EFFECTS, XXX,    XXX,    XXX,    XXX },
+ /* cal */     { SIDE_EFFECTS, XXX,    XXX,    XXX,    XXX },
+ /* cff */     { TERNAIR_OP,   XXX,    XXX,    CVT,    FLT },
+ /* cfi */     { TERNAIR_OP,   XXX,    XXX,    CVT,    ANY },
+ /* cfu */     { TERNAIR_OP,   XXX,    XXX,    CVT,    ANY },
+ /* cif */     { TERNAIR_OP,   XXX,    XXX,    CVT,    FLT },
+ /* cii */     { TERNAIR_OP,   XXX,    XXX,    CVT,    ANY },
+ /* ciu */     { TERNAIR_OP,   XXX,    XXX,    CVT,    ANY },
+ /* cmf */     { BINAIR_OP,    ARGW,   ARGW,   WS,     ANY },
+ /* cmi */     { BINAIR_OP,    ARGW,   ARGW,   WS,     ANY },
+ /* cmp */     { BINAIR_OP,    PS,     PS,     WS,     ANY },
+ /* cms */     { BINAIR_OP,    ARGW,   ARGW,   WS,     ANY },
+ /* cmu */     { BINAIR_OP,    ARGW,   ARGW,   WS,     ANY },
+ /* com */     { UNAIR_OP,     ARGW,   XXX,    ARGW,   ANY },
+ /* csa */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* csb */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* cuf */     { TERNAIR_OP,   XXX,    XXX,    CVT,    FLT },
+ /* cui */     { TERNAIR_OP,   XXX,    XXX,    CVT,    ANY },
+ /* cuu */     { TERNAIR_OP,   XXX,    XXX,    CVT,    ANY },
+ /* dch */     { UNAIR_OP,     PS,     XXX,    PS,     PTR },
+ /* dec */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* dee */     { KILL_ENTITY,  XXX,    XXX,    XXX,    XXX },
+ /* del */     { KILL_ENTITY,  XXX,    XXX,    XXX,    XXX },
+ /* dup */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* dus */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* dvf */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   FLT },
+ /* dvi */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* dvu */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* exg */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* fef */     { UNAIR_OP,     ARGW,   XXX,    FEF,    XXX },
+ /* fif */     { BINAIR_OP,    ARGW,   ARGW,   FIF,    XXX },
+ /* fil */     { IGNORE,               XXX,    XXX,    XXX,    XXX },
+ /* gto */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* inc */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* ine */     { KILL_ENTITY,  XXX,    XXX,    XXX,    XXX },
+ /* inl */     { KILL_ENTITY,  XXX,    XXX,    XXX,    XXX },
+ /* inn */     { BINAIR_OP,    ARGW,   WS,     WS,     ANY },
+ /* ior */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* lae */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lal */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lar */     { LOAD_ARRAY,   XXX,    XXX,    XXX,    ANY },
+ /* ldc */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lde */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* ldf */     { EXPENSIVE_LOAD,       XXX,    XXX,    XXX,    ANY },
+ /* ldl */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lfr */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* lil */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lim */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lin */     { IGNORE,               XXX,    XXX,    XXX,    XXX },
+ /* lni */     { IGNORE,               XXX,    XXX,    XXX,    XXX },
+ /* loc */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* loe */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lof */     { EXPENSIVE_LOAD,       XXX,    XXX,    XXX,    ANY },
+ /* loi */     { EXPENSIVE_LOAD,       XXX,    XXX,    XXX,    ANY },
+ /* lol */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lor */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* los */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* lpb */     { UNAIR_OP,     PS,     XXX,    PS,     PTR },
+ /* lpi */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* lxa */     { EXPENSIVE_LOAD,       XXX,    XXX,    XXX,    PTR },
+ /* lxl */     { EXPENSIVE_LOAD,       XXX,    XXX,    XXX,    PTR },
+ /* mlf */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   FLT },
+ /* mli */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* mlu */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* mon */     { HOPELESS,     XXX,    XXX,    XXX,    XXX },
+ /* ngf */     { UNAIR_OP,     ARGW,   XXX,    ARGW,   FLT },
+ /* ngi */     { UNAIR_OP,     ARGW,   XXX,    ARGW,   ANY },
+ /* nop */     { HOPELESS,     XXX,    XXX,    XXX,    XXX },
+ /* rck */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* ret */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* rmi */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* rmu */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* rol */     { BINAIR_OP,    ARGW,   WS,     ARGW,   ANY },
+ /* ror */     { BINAIR_OP,    ARGW,   WS,     ARGW,   ANY },
+ /* rtt */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* sar */     { STORE_ARRAY,  XXX,    XXX,    XXX,    XXX },
+ /* sbf */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   FLT },
+ /* sbi */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* sbs */     { BINAIR_OP,    PS,     PS,     ARGW,   ANY },
+ /* sbu */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* sde */     { STORE_DIRECT, XXX,    XXX,    XXX,    XXX },
+ /* sdf */     { STORE_INDIR,  XXX,    XXX,    XXX,    XXX },
+ /* sdl */     { STORE_DIRECT, XXX,    XXX,    XXX,    XXX },
+ /* set */     { UNAIR_OP,     WS,     XXX,    ARGW,   ANY },
+ /* sig */     { FIDDLE_STACK, XXX,    XXX,    XXX,    XXX },
+ /* sil */     { STORE_INDIR,  XXX,    XXX,    XXX,    XXX },
+ /* sim */     { STORE_DIRECT, XXX,    XXX,    XXX,    XXX },
+ /* sli */     { BINAIR_OP,    ARGW,   WS,     ARGW,   ANY },
+ /* slu */     { BINAIR_OP,    ARGW,   WS,     ARGW,   ANY },
+ /* sri */     { BINAIR_OP,    ARGW,   WS,     ARGW,   ANY },
+ /* sru */     { BINAIR_OP,    ARGW,   WS,     ARGW,   ANY },
+ /* ste */     { STORE_DIRECT, XXX,    XXX,    XXX,    XXX },
+ /* stf */     { STORE_INDIR,  XXX,    XXX,    XXX,    XXX },
+ /* sti */     { STORE_INDIR,  XXX,    XXX,    XXX,    XXX },
+ /* stl */     { STORE_DIRECT, XXX,    XXX,    XXX,    XXX },
+ /* str */     { HOPELESS,     XXX,    XXX,    XXX,    XXX },
+ /* sts */     { HOPELESS,     XXX,    XXX,    XXX,    XXX },
+ /* teq */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* tge */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* tgt */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* tle */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* tlt */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* tne */     { UNAIR_OP,     WS,     XXX,    WS,     ANY },
+ /* trp */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* xor */     { BINAIR_OP,    ARGW,   ARGW,   ARGW,   ANY },
+ /* zeq */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* zer */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* zge */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* zgt */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* zle */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* zlt */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* zne */     { BBLOCK_END,   XXX,    XXX,    XXX,    XXX },
+ /* zre */     { KILL_ENTITY,  XXX,    XXX,    XXX,    XXX },
+ /* zrf */     { SIMPLE_LOAD,  XXX,    XXX,    XXX,    XXX },
+ /* zrl */     { KILL_ENTITY,  XXX,    XXX,    XXX,    XXX }
 };
 
 #define GROUP(n)       (info[n].i_group)
index b8c94d8..8713681 100644 (file)
@@ -15,6 +15,7 @@
 #include "../share/lset.h"
 #include "cs.h"
 #include "cs_aux.h"
+#include "cs_alloc.h"
 #include "cs_debug.h"
 #include "cs_avail.h"
 #include "cs_partit.h"
index c2419fa..24bda5a 100644 (file)
@@ -10,6 +10,9 @@
 #include <em_path.h>
 #include <signal.h>
 #include <system.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include "../share/debug.h"
 
 #define        IC      1
 #define CF     2
@@ -89,7 +92,7 @@ static void cleanup()
        register int i;
 
        for (i = NTEMPS*2; i > 0; i--) {
-               register char   *f = phargs[i];
+               char    *f = phargs[i];
                if (f != 0 && *f != '\0' && *f != '-') (void) unlink(f);
        }
        if (ddump[0] != '\0') (void) unlink(ddump);
@@ -102,9 +105,9 @@ static void fatal(char *s, char *s2)
 {
   /*   A fatal error occurred; exit gracefully */
 
-  fprint(STDERR, "%s: ", prog_name);
-  fprint(STDERR, s, s2);
-  fprint(STDERR, "\n");
+  fprintf(stderr, "%s: ", prog_name);
+  fprintf(stderr, s, s2);
+  fprintf(stderr, "\n");
   cleanup();
   sys_stop(S_EXIT);
   /*NOTREACHED*/
@@ -149,9 +152,9 @@ static void get_infiles()
 {
   /*   Make output temps from previous phase input temps of next phase. */
 
-  register int i;
-  register char        **dst = &phargs[1];
-  register char        **src = &phargs[NTEMPS+1];
+  int  i;
+  char **dst = &phargs[1];
+  char **src = &phargs[NTEMPS+1];
 
   for (i = 1; i <= NTEMPS; i++) {
        *dst++ = *src++;
@@ -164,8 +167,8 @@ static void new_outfiles()
   static int   Bindex = 0;
   static char  dig1 = '1';
   static char  dig2 = '0';
-  register int i;
-  register char        **dst = &phargs[NTEMPS+1];
+  int  i;
+  char **dst = &phargs[NTEMPS+1];
 
   if (! Bindex) {
        Bindex = strrchr(tmpbufs[0], 'B') - tmpbufs[0];
@@ -190,8 +193,8 @@ static void run_phase(int phase)
        IC and CA.
   */
   static int flags_added;
-  register int argc;
-  register int i;
+  int  argc;
+  int  i;
   char buf[256];
   int  pid, status;
 
@@ -242,10 +245,10 @@ static void run_phase(int phase)
                register int i = 0;
 
                while (phargs[i]) {
-                       fprint(STDERR, "%s ", phargs[i]);
+                       fprintf(stderr, "%s ", phargs[i]);
                        i++;
                }
-               fprint(STDERR, "\n");
+               fprintf(stderr, "\n");
        }
        (void) execv(phargs[0], phargs);
        fatal("Could not exec %s", phargs[0]);
index 4208df9..36cfb22 100644 (file)
@@ -18,6 +18,7 @@
 #include "../share/map.h"
 #include "ic.h"
 #include "ic_lookup.h"
+#include "ic_io.h"
 #include "../share/alloc.h"
 
 
index 91be755..ece6c9c 100644 (file)
@@ -74,3 +74,5 @@ void cleandblocks(sym_p hash[], int n, int mask);
                                        /* Make the names of all data blocks
                                         * for which d_flags1&mask = 0 invisible
                                         */
+
+void dump_dblocknames(sym_p hash[], int n, FILE *f);
\ No newline at end of file
index b07c813..727e1ad 100644 (file)
@@ -8,6 +8,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <unistd.h>
+
+#include <missing_proto.h>
 #include <em_path.h>
 #include <em_mnem.h>
 #include <em_pseu.h>
 #include "../share/files.h"
 #include "../share/map.h"
 #include "il_aux.h"
+#include "il1_aux.h"
 #include "il1_anal.h"
 #include "il2_aux.h"
 #include "il3_subst.h"
+#include "il3_change.h"
 #include "../share/get.h"
 #include "../share/put.h"
 #include "../share/go.h"
index 035d509..66b4e16 100644 (file)
@@ -18,6 +18,8 @@
 #include "../share/global.h"
 #include "../share/lset.h"
 #include "../share/aux.h"
+#include "../share/cset.h"
+#include "il_aux.h"
 #include "il1_aux.h"
 #include "il1_formal.h"
 #include "il1_cal.h"
index 65b800f..3410321 100644 (file)
@@ -19,6 +19,7 @@
 #include "../share/global.h"
 #include "../share/lset.h"
 #include "il1_aux.h"
+#include "il_aux.h"
 #include "../share/parser.h"
 
 static actual_p acts, *app;
index 474846a..2974328 100644 (file)
@@ -20,6 +20,7 @@
 #include "il_aux.h"
 #include "il2_aux.h"
 #include "../share/get.h"
+#include "../share/cset.h"
 #include "../share/aux.h"
 
 #define USE_INDIR(p)   (p->p_use->u_flags & UF_INDIR)
index 0597f60..ad9a157 100644 (file)
@@ -52,3 +52,5 @@ long putcc(calcnt_p head, FILE *ccf);
                                /* Write call-count information to
                                 * file ccf.
                                 */
+
+void remunit(short kind, proc_p p, line_p l);
\ No newline at end of file
index 6bf9a61..9fa871f 100644 (file)
 #include "../share/get.h"
 #include "../share/put.h"
 #include "../share/lset.h"
+#include "../share/cset.h"
 #include "../share/map.h"
 #include "../share/alloc.h"
 #include "../share/go.h"
 #include "ra.h"
 #include "ra_items.h"
 #include "ra_allocl.h"
+#include "ra_lifet.h"
 #include "ra_profits.h"
 #include "ra_pack.h"
 #include "ra_xform.h"
index dd599b0..c399841 100644 (file)
@@ -175,9 +175,9 @@ static bool lt_item(item_p a, item_p b)
  */
 
 
-
+#if 0
 static item_p items[NRITEMTYPES];  /* items[i] points to the list of type i */
-
+#endif
 
 
 static short reg_type(item_p item)
index 29fc0f4..179458d 100644 (file)
@@ -25,7 +25,8 @@
 #include "ra_aux.h"
 #include "ra_items.h"
 #include "ra_lifet.h"
-
+#include "ra_interv.h"
+#include "ra_profits.h"
 
 #define MSG_OFF(l)     aoff(ARG(l),2)
 #define is_livemsg(l)  (INSTR(l) == ps_mes && aoff(ARG(l),0) == ms_ego && \
index fa34826..7ab01a6 100644 (file)
@@ -20,6 +20,7 @@
 #include "ra.h"
 #include "ra_aux.h"
 #include "ra_interv.h"
+#include "ra_profits.h"
 
 
 short regs_occupied[NRREGTYPES];       /* #occupied registers for reg_pointer,
index aa00b53..dee8551 100644 (file)
@@ -268,12 +268,12 @@ static void apply_alloc(bblock_p b, line_p l, alloc_p alloc)
 
 static int loaditem_tab[NRITEMTYPES][2] =
 {      /*              WS              2 * WS */
-       /*LOCALVAR*/    op_lol,         op_ldl,
-       /*LOCAL_ADDR*/  op_lal,         op_lal,
-       /*GLOBL_ADDR*/  op_lae,         op_lae,
-       /*PROC_ADDR*/   op_lpi,         op_lpi,
-       /*CONST*/       op_loc,         op_nop,
-       /*DCONST*/      op_nop,         op_ldc
+       /*LOCALVAR*/    { op_lol,               op_ldl },
+       /*LOCAL_ADDR*/  { op_lal,               op_lal },
+       /*GLOBL_ADDR*/  { op_lae,               op_lae },
+       /*PROC_ADDR*/   { op_lpi,               op_lpi },
+       /*CONST*/               { op_loc,               op_nop },
+       /*DCONST*/              { op_nop,               op_ldc }
 };
 
 
index 8cec2a3..d321f2a 100644 (file)
@@ -5,6 +5,8 @@
  */
 /* D E B U G G I N G   T O O L S */
 
+#include "types.h"
+
 /* TEMPORARY: */
 /* #define DEBUG */
 
index 8641b35..9a03a6e 100644 (file)
@@ -9,9 +9,9 @@
  */
 
 #include <stdio.h>
+#include "debug.h"
 
-FILE *openfile(name,mode)
-       char *name,*mode;
+FILE *openfile(char *name, char *mode)
 {
        FILE *f;
 
index 7ae1578..4acfc7b 100644 (file)
@@ -34,7 +34,7 @@ void convert(FILE *mnemfile, FILE *classfile)
 
        newcl = TRUE;
        printf("struct class classtab[] = {\n");
-       printf("\tNOCLASS,\tNOCLASS,\n");
+       printf("\t{ NOCLASS,\tNOCLASS },\n");
        /* EM mnemonics start at 1, arrays in C at 0 */
        for (;;) {
                fscanf(mnemfile,"%s%s%d",def,mnem1,&opc);
@@ -51,10 +51,10 @@ void convert(FILE *mnemfile, FILE *classfile)
                        /* there is no line for this mnemonic, so
                         * it has no class.
                         */
-                       printf("\tNOCLASS,\tNOCLASS,\n");
+                       printf("\t { NOCLASS,\tNOCLASS },\n");
                        newcl = FALSE;
                } else {
-                       printf("\tCLASS%d,\t\tCLASS%d,\n",src,res);
+                       printf("\t { CLASS%d,\t\tCLASS%d },\n",src,res);
                        /* print a line like "CLASS8, CLASS1," */
                        newcl = TRUE;
                }
index e966fb3..254c862 100644 (file)
@@ -18,6 +18,7 @@
 #include "lset.h"
 #include "alloc.h"
 #include "put.h"
+#include "cset.h"
 
 FILE *curoutp;
 
@@ -36,11 +37,8 @@ static void putstr(argb_p abp);
 static void outlab(lab_id lid);
 static void outobject(obj_p obj);
 static void putstr(argb_p abp);
-void outshort(short i);
 static void putstr(argb_p abp);
 
-
-
 static void putargs(arg_p ap)
 {
        while (ap != (arg_p) 0) {
index 176eabb..f526be3 100644 (file)
@@ -4,7 +4,8 @@
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
 /* I N T E R N A L   D A T A S T R U C T U R E S   O F   E G O  */
-
+#ifndef UTIL_EGO_SHARE_TYPES_H
+#define UTIL_EGO_SHARE_TYPES_H
 
 /* This file contains the definitions of the global data types.
  */
@@ -422,3 +423,4 @@ struct cond_tab {
 #define IN_0_63                2
 #define IN_0_8         3
 
+#endif /* UTIL_EGO_SHARE_TYPES_H */
\ No newline at end of file
index a98c87d..991dc3a 100644 (file)
@@ -23,6 +23,7 @@
 #include "../share/aux.h"
 #include "sr_aux.h"
 #include "sr_iv.h"
+#include "sr_reduce.h"
 
 /* Strength reduction tries to change expensive operators occurring
  * in a loop into cheaper operators. The expensive operators considered