adapted sizes somewhat, made facility to print memory statistics
authorceriel <none@none>
Tue, 11 Aug 1987 14:42:15 +0000 (14:42 +0000)
committerceriel <none@none>
Tue, 11 Aug 1987 14:42:15 +0000 (14:42 +0000)
util/led/mach.c
util/led/main.c
util/led/memory.c
util/led/memory.h

index b1fe0d3..ed1938c 100644 (file)
 #define K 1024L
 
 #if BIGMACHINE
-       mems[ALLOEMIT + 0].mem_left = 32 * K;
-       mems[ALLOEMIT + 1].mem_left = 8 * K;
+#define INCRSIZE 8192
+       mems[ALLOEMIT + 0].mem_left = 64 * K;
+       mems[ALLOEMIT + 1].mem_left = 4 * K;
        mems[ALLOEMIT + 2].mem_left = 16 * K;
-       mems[ALLORELO].mem_left = 32 * K;
-       mems[ALLOLOCL].mem_left = 32 * K;
-       mems[ALLOGLOB].mem_left = 32 * K;
-       mems[ALLOLCHR].mem_left = 32 * K;
-       mems[ALLOGCHR].mem_left = 32 * K;
+       mems[ALLORELO].mem_left = 24 * K;
+       mems[ALLOLOCL].mem_left = 16 * K;
+       mems[ALLOGLOB].mem_left = 16 * K;
+       mems[ALLOLCHR].mem_left = 16 * K;
+       mems[ALLOGCHR].mem_left = 16 * K;
 #ifdef SYMDBUG
        mems[ALLODBUG].mem_left = 32 * K;
 #endif SYMDBUG
-       mems[ALLOSYMB].mem_left = 4 * K;
-       mems[ALLOARCH].mem_left = 1 * K;
-       mems[ALLOMODL].mem_left = 32 * K;
-       mems[ALLORANL].mem_left = 4 * K;
+       mems[ALLOSYMB].mem_left = 8 * K;
+       mems[ALLOARCH].mem_left = 4 * K;
+       mems[ALLOMODL].mem_left = 64 * K;
+       mems[ALLORANL].mem_left = 8 * K;
 #else
-#undef INCRSIZE
 #define INCRSIZE 256
        mems[ALLOEMIT + 0].mem_left = 8 * K;
        mems[ALLOEMIT + 1].mem_left = 2 * K;
index 6e15b8b..4824362 100644 (file)
@@ -19,6 +19,9 @@ static char rcsid[] = "$Header$";
 #include "orig.h"
 
 extern bool    incore;
+#ifndef NOSTATISTICS
+int            statistics;
+#endif
 #ifndef NDEBUG
 int                    DEB = 0;
 #endif
@@ -37,6 +40,9 @@ static                        change_names();
 static bool            tstbit();
 static                 second_pass();
 static                 pass2();
+#ifndef NOSTATISTICS
+static                 do_statistics();
+#endif
 
 main(argc, argv)
        int     argc;
@@ -44,6 +50,9 @@ main(argc, argv)
 {
        initializations(argc, argv);
        first_pass(argv);
+#ifndef NOSTATISTICS
+       do_statistics();
+#endif
        freeze_core();
        evaluate();
        beginoutput();
@@ -52,6 +61,22 @@ main(argc, argv)
        stop();
 }
 
+#ifndef NOSTATISTICS
+static
+do_statistics()
+{
+       register struct memory *m = mems;
+
+       while (m <= &mems[NMEMS-1]) {
+               fprintf(stderr, "mem %d: full %lx, free %lx\n",
+                               m - mems,
+                               (long) m->mem_full,
+                               (long) m->mem_left);
+               m++;
+       }
+}
+#endif
+
 char           *progname;      /* Name this program was invoked with. */
 int            passnumber;     /* Pass we are in. */
 struct outhead outhead;        /* Header of final output file. */
@@ -193,6 +218,9 @@ first_pass(argv)
                        if (searchname(*argv, h) == (struct outname *)0)
                                entername(makename(*argv), h);
                        break;
+               case 'S':
+                       statistics = 1;
+                       break;
                default:
                        warning("bad flag letter %c", *argp);
                        break;
index acf8e5c..44eb775 100644 (file)
@@ -60,7 +60,7 @@ sbreak(incr)
                        refused = incr;
                return -1;
        }
-       BASE = sbrk(0);
+       BASE += inc;
        return 0;
 }
 
index 1d455b7..6159538 100644 (file)
@@ -21,8 +21,6 @@
 #define ALLORANL       (ALLOMODL + 1)          /* Ranlib information. */
 #define NMEMS          (ALLORANL + 1)
 
-#define INCRSIZE       1024
-
 typedef long           ind_t;
 #define BADOFF         ((ind_t)-1)