#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;
#include "orig.h"
extern bool incore;
+#ifndef NOSTATISTICS
+int statistics;
+#endif
#ifndef NDEBUG
int DEB = 0;
#endif
static bool tstbit();
static second_pass();
static pass2();
+#ifndef NOSTATISTICS
+static do_statistics();
+#endif
main(argc, argv)
int argc;
{
initializations(argc, argv);
first_pass(argv);
+#ifndef NOSTATISTICS
+ do_statistics();
+#endif
freeze_core();
evaluate();
beginoutput();
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. */
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;