wingo pushed a commit to branch wip-whippet
in repository guile.

commit b0b4c4d89393022623ce9603ccb3587997362771
Author: Andy Wingo <wi...@igalia.com>
AuthorDate: Thu Mar 31 09:24:54 2022 +0200

    Remove unneeded files
---
 MT_GCBench.c    | 341 ------------------------------------------------
 MT_GCBench2.c   | 398 --------------------------------------------------------
 gcbench-types.h |  10 --
 3 files changed, 749 deletions(-)

diff --git a/MT_GCBench.c b/MT_GCBench.c
deleted file mode 100644
index ba3a594f9..000000000
--- a/MT_GCBench.c
+++ /dev/null
@@ -1,341 +0,0 @@
-// This is adapted from a benchmark written by John Ellis and Pete Kovac
-// of Post Communications.
-// It was modified by Hans Boehm of Silicon Graphics.
-// Translated to C++ 30 May 1997 by William D Clinger of Northeastern Univ.
-// Translated to C 15 March 2000 by Hans Boehm, now at HP Labs.
-// Adapted to run NTHREADS client threads concurrently.  Each
-// thread executes the original benchmark.  12 June 2000  by Hans Boehm.
-//
-//      This is no substitute for real applications.  No actual application
-//      is likely to behave in exactly this way.  However, this benchmark was
-//      designed to be more representative of real applications than other
-//      Java GC benchmarks of which we are aware.
-//      It attempts to model those properties of allocation requests that
-//      are important to current GC techniques.
-//      It is designed to be used either to obtain a single overall performance
-//      number, or to give a more detailed estimate of how collector
-//      performance varies with object lifetimes.  It prints the time
-//      required to allocate and collect balanced binary trees of various
-//      sizes.  Smaller trees result in shorter object lifetimes.  Each cycle
-//      allocates roughly the same amount of memory.
-//      Two data structures are kept around during the entire process, so
-//      that the measured performance is representative of applications
-//      that maintain some live in-memory data.  One of these is a tree
-//      containing many pointers.  The other is a large array containing
-//      double precision floating point numbers.  Both should be of comparable
-//      size.
-//
-//      The results are only really meaningful together with a specification
-//      of how much memory was used.  It is possible to trade memory for
-//      better time performance.  This benchmark should be run in a 32 MB
-//      heap, though we don't currently know how to enforce that uniformly.
-//
-//      Unlike the original Ellis and Kovac benchmark, we do not attempt
-//      measure pause times.  This facility should eventually be added back
-//      in.  There are several reasons for omitting it for now.  The original
-//      implementation depended on assumptions about the thread scheduler
-//      that don't hold uniformly.  The results really measure both the
-//      scheduler and GC.  Pause time measurements tend to not fit well with
-//      current benchmark suites.  As far as we know, none of the current
-//      commercial Java implementations seriously attempt to minimize GC pause
-//      times.
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <pthread.h>
-
-#ifdef GC
-#  ifndef LINUX_THREADS
-#     define LINUX_THREADS
-#  endif
-#  ifndef _REENTRANT
-#     define _REENTRANT
-#  endif
-#  ifdef LOCAL
-#    define GC_REDIRECT_TO_LOCAL
-#    include "gc_local_alloc.h"
-#  endif
-#  include "gc.h"
-#endif
-
-
-#ifndef NTHREADS
-#   define NTHREADS 1
-#endif
-
-#ifdef PROFIL
-  extern void init_profiling();
-  extern dump_profile();
-#endif
-
-//  These macros were a quick hack for the Macintosh.
-//
-//  #define currentTime() clock()
-//  #define elapsedTime(x) ((1000*(x))/CLOCKS_PER_SEC)
-
-#define currentTime() stats_rtclock()
-#define elapsedTime(x) (x)
-
-/* Get the current time in milliseconds */
-
-unsigned
-stats_rtclock( void )
-{
-  struct timeval t;
-  struct timezone tz;
-
-  if (gettimeofday( &t, &tz ) == -1)
-    return 0;
-  return (t.tv_sec * 1000 + t.tv_usec / 1000);
-}
-
-static const int kStretchTreeDepth    = 18;      // about 16Mb
-static const int kLongLivedTreeDepth  = 16;  // about 4Mb
-static const int kArraySize  = 500000;  // about 4Mb
-static const int kMinTreeDepth = 4;
-static const int kMaxTreeDepth = 16;
-
-typedef struct Node0_struct {
-        struct Node0_struct * left;
-        struct Node0_struct * right;
-        int i, j;
-} Node0;
-
-#ifdef HOLES
-#   define HOLE() GC_NEW(Node0);
-#else
-#   define HOLE()
-#endif
-
-typedef Node0 *Node;
-
-void init_Node(Node me, Node l, Node r) {
-    me -> left = l;
-    me -> right = r;
-}
-
-#ifndef GC
-  void destroy_Node(Node me) {
-    if (me -> left) {
-       destroy_Node(me -> left);
-    }
-    if (me -> right) {
-       destroy_Node(me -> right);
-    }
-    free(me);
-  }
-#endif
-
-// Nodes used by a tree of a given size
-static int TreeSize(int i) {
-        return ((1 << (i + 1)) - 1);
-}
-
-// Number of iterations to use for a given tree depth
-static int NumIters(int i) {
-        return 2 * TreeSize(kStretchTreeDepth) / TreeSize(i);
-}
-
-// Build tree top down, assigning to older objects.
-static void Populate(int iDepth, Node thisNode) {
-        if (iDepth<=0) {
-                return;
-        } else {
-                iDepth--;
-#              ifdef GC
-                  thisNode->left  = GC_NEW(Node0); HOLE();
-                  thisNode->right = GC_NEW(Node0); HOLE();
-#              else
-                  thisNode->left  = calloc(1, sizeof(Node0));
-                  thisNode->right = calloc(1, sizeof(Node0));
-#              endif
-                Populate (iDepth, thisNode->left);
-                Populate (iDepth, thisNode->right);
-        }
-}
-
-// Build tree bottom-up
-static Node MakeTree(int iDepth) {
-       Node result;
-        if (iDepth<=0) {
-#          ifndef GC
-               result = calloc(1, sizeof(Node0));
-#          else
-               result = GC_NEW(Node0); HOLE();
-#          endif
-           /* result is implicitly initialized in both cases. */
-           return result;
-        } else {
-           Node left = MakeTree(iDepth-1);
-           Node right = MakeTree(iDepth-1);
-#          ifndef GC
-               result = malloc(sizeof(Node0));
-#          else
-               result = GC_NEW(Node0); HOLE();
-#          endif
-           init_Node(result, left, right);
-           return result;
-        }
-}
-
-static void PrintDiagnostics() {
-#if 0
-        long lFreeMemory = Runtime.getRuntime().freeMemory();
-        long lTotalMemory = Runtime.getRuntime().totalMemory();
-
-        System.out.print(" Total memory available="
-                         + lTotalMemory + " bytes");
-        System.out.println("  Free memory=" + lFreeMemory + " bytes");
-#endif
-}
-
-static void TimeConstruction(int depth) {
-        long    tStart, tFinish;
-        int     iNumIters = NumIters(depth);
-        Node    tempTree;
-       int     i;
-
-       printf("0x%x: Creating %d trees of depth %d\n", pthread_self(), 
iNumIters, depth);
-        
-        tStart = currentTime();
-        for (i = 0; i < iNumIters; ++i) {
-#              ifndef GC
-                  tempTree = calloc(1, sizeof(Node0));
-#              else
-                  tempTree = GC_NEW(Node0);
-#              endif
-                Populate(depth, tempTree);
-#              ifndef GC
-                  destroy_Node(tempTree);
-#              endif
-                tempTree = 0;
-        }
-        tFinish = currentTime();
-        printf("\t0x%x: Top down construction took %d msec\n",
-               pthread_self(), elapsedTime(tFinish - tStart));
-             
-        tStart = currentTime();
-        for (i = 0; i < iNumIters; ++i) {
-                tempTree = MakeTree(depth);
-#              ifndef GC
-                  destroy_Node(tempTree);
-#              endif
-                tempTree = 0;
-        }
-        tFinish = currentTime();
-        printf("\t0x%x: Bottom up construction took %d msec\n",
-               pthread_self(), elapsedTime(tFinish - tStart));
-
-}
-
-void * run_one_test(void * arg) {
-       int d;
-        for (d = kMinTreeDepth; d <= kMaxTreeDepth; d += 2) {
-                TimeConstruction(d);
-        }
-}
-
-int main() {
-        Node    root;
-        Node    longLivedTree;
-        Node    tempTree;
-        long    tStart, tFinish;
-        long    tElapsed;
-       int     i;
-       double  *array;
-
-#ifdef GC
- // GC_full_freq = 30;
- // GC_free_space_divisor = 16;
- // GC_enable_incremental();
-#endif
-#       if defined(GC) && defined(LOCAL)
-         GC_thr_init();
-#      endif
-       printf("Garbage Collector Test\n");
-       printf(" Live storage will peak at %d bytes.\n\n",
-               2 * sizeof(Node0) * TreeSize(kLongLivedTreeDepth) +
-               sizeof(double) * kArraySize);
-        printf(" Stretching memory with a binary tree of depth %d\n",
-               kStretchTreeDepth);
-        PrintDiagnostics();
-#      ifdef PROFIL
-           init_profiling();
-#      endif
-       
-        tStart = currentTime();
-        
-        // Stretch the memory space quickly
-        tempTree = MakeTree(kStretchTreeDepth);
-#      ifndef GC
-          destroy_Node(tempTree);
-#      endif
-        tempTree = 0;
-
-        // Create a long lived object
-        printf(" Creating a long-lived binary tree of depth %d\n",
-               kLongLivedTreeDepth);
-#      ifndef GC
-          longLivedTree = calloc(1, sizeof(Node0));
-#      else 
-          longLivedTree = GC_NEW(Node0);
-#      endif
-        Populate(kLongLivedTreeDepth, longLivedTree);
-
-        // Create long-lived array, filling half of it
-       printf(" Creating a long-lived array of %d doubles\n", kArraySize);
-#      ifndef GC
-          array = malloc(kArraySize * sizeof(double));
-#      else
-#        ifndef NO_PTRFREE
-            array = GC_MALLOC_ATOMIC(sizeof(double) * kArraySize);
-#        else
-            array = GC_MALLOC(sizeof(double) * kArraySize);
-#        endif
-#      endif
-        for (i = 0; i < kArraySize/2; ++i) {
-                array[i] = 1.0/i;
-        }
-
-        {
-         pthread_t thread[NTHREADS];
-         for (i = 1; i < NTHREADS; ++i) {
-           int code;
-
-           if ((code = pthread_create(thread+i, 0, run_one_test, 0)) != 0) {
-             fprintf(stderr, "Thread creation failed %u\n", code);
-             exit(1);
-           }
-         }
-         /* We use the main thread to run one test.  This allows       */
-         /* profiling to work, for example.                            */
-         run_one_test(0);
-         for (i = 1; i < NTHREADS; ++i) {
-           int code;
-           if ((code = pthread_join(thread[i], 0)) != 0) {
-               fprintf(stderr, "Thread join failed %u\n", code);
-           }
-         }
-        }
-        PrintDiagnostics();
-
-        if (longLivedTree == 0 || array[1000] != 1.0/1000)
-               fprintf(stderr, "Failed\n");
-                                // fake reference to LongLivedTree
-                                // and array
-                                // to keep them from being optimized away
-
-        tFinish = currentTime();
-        tElapsed = elapsedTime(tFinish-tStart);
-        PrintDiagnostics();
-        printf("Completed in %d msec\n", tElapsed);
-#      ifdef GC
-         printf("Completed %d collections\n", GC_gc_no);
-         printf("Heap size is %d\n", GC_get_heap_size());
-#       endif
-#      ifdef PROFIL
-         dump_profile();
-#      endif
-}
-
diff --git a/MT_GCBench2.c b/MT_GCBench2.c
deleted file mode 100644
index 07fe7e3a5..000000000
--- a/MT_GCBench2.c
+++ /dev/null
@@ -1,398 +0,0 @@
-// This is version 2 of the multithreaded GC Bench.
-// Heap expansion is handled differently from version 1, in an attempt
-// to make scalability measurements more meaningful.  The version with
-// N threads now immediately expands the heap to N*32MB.
-//
-// To run this with BDWGC versions 6 and later with thread local allocation,
-// define GC and LOCAL.  Without thread-local allocation, define just GC.
-// To run it with the University of Tokyo scalable GC,
-// define SGC.  To run it with malloc and explicit deallocation, define
-// none of these.  (This should also work for Hoard.)
-//
-// Note that defining GC or SGC removes the explicit deallocation passes,
-// which seems fair.
-// 
-// This is adapted from a benchmark written by John Ellis and Pete Kovac
-// of Post Communications.
-// It was modified by Hans Boehm of Silicon Graphics.
-// Translated to C++ 30 May 1997 by William D Clinger of Northeastern Univ.
-// Translated to C 15 March 2000 by Hans Boehm, now at HP Labs.
-// Adapted to run NTHREADS client threads concurrently.  Each
-// thread executes the original benchmark.  12 June 2000  by Hans Boehm.
-// Changed heap expansion rule, and made the number of threads run-time
-// configurable.  25 Oct 2000 by Hans Boehm.
-//
-//      This is no substitute for real applications.  No actual application
-//      is likely to behave in exactly this way.  However, this benchmark was
-//      designed to be more representative of real applications than other
-//      Java GC benchmarks of which we were aware at the time.
-//      It still doesn't seem too bad for something this small.
-//      It attempts to model those properties of allocation requests that
-//      are important to current GC techniques.
-//      It is designed to be used either to obtain a single overall performance
-//      number, or to give a more detailed estimate of how collector
-//      performance varies with object lifetimes.  It prints the time
-//      required to allocate and collect balanced binary trees of various
-//      sizes.  Smaller trees result in shorter object lifetimes.  Each cycle
-//      allocates roughly the same amount of memory.
-//      Two data structures are kept around during the entire process, so
-//      that the measured performance is representative of applications
-//      that maintain some live in-memory data.  One of these is a tree
-//      containing many pointers.  The other is a large array containing
-//      double precision floating point numbers.  Both should be of comparable
-//      size.
-//
-//      The results are only really meaningful together with a specification
-//      of how much memory was used.  This versions of the benchmark tries
-//      to preallocate a sufficiently large heap that expansion should not be
-//      needed.
-//
-//      Unlike the original Ellis and Kovac benchmark, we do not attempt
-//      measure pause times.  This facility should eventually be added back
-//      in.  There are several reasons for omitting it for now.  The original
-//      implementation depended on assumptions about the thread scheduler
-//      that don't hold uniformly.  The results really measure both the
-//      scheduler and GC.  Pause time measurements tend to not fit well with
-//      current benchmark suites.  As far as we know, none of the current
-//      commercial Java implementations seriously attempt to minimize GC pause
-//      times.
-//
-//      Since this benchmark has recently been more widely used, some
-//      anomalous behavious has been uncovered.  The user should be aware
-//      of this:
-//      1) Nearly all objects are of the same size.  This benchmark is
-//         not useful for analyzing fragmentation behavior.  It is unclear
-//         whether this is an issue for well-designed allocators.
-//      2) Unless HOLES is defined, it tends to drop consecutively allocated
-//         memory at the same time.  Many real applications do exhibit this
-//         phenomenon, but probably not to this extent.  (Defining HOLES tends
-//         to move the benchmark to the opposite extreme.)
-//      3) It appears harder to predict object lifetimes than for most real
-//         Java programs (see T. Harris, "Dynamic adptive pre-tenuring",
-//         ISMM '00).
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <pthread.h>
-
-#ifdef GC
-#  ifndef LINUX_THREADS
-#     define LINUX_THREADS
-#  endif
-#  ifndef _REENTRANT
-#     define _REENTRANT
-#  endif
-#  ifdef LOCAL
-#    define GC_REDIRECT_TO_LOCAL
-#    include "gc_local_alloc.h"
-#  endif
-#  include "gc.h"
-#endif
-#ifdef SGC
-#  include "sgc.h"
-#  define GC
-#  define pthread_create GC_pthread_create
-#  define pthread_join GC_pthread_join
-#endif
-
-#define MAX_NTHREADS 1024
-
-int nthreads = 0;
-
-#ifdef PROFIL
-  extern void init_profiling();
-  extern dump_profile();
-#endif
-
-//  These macros were a quick hack for the Macintosh.
-//
-//  #define currentTime() clock()
-//  #define elapsedTime(x) ((1000*(x))/CLOCKS_PER_SEC)
-
-#define currentTime() stats_rtclock()
-#define elapsedTime(x) (x)
-
-/* Get the current time in milliseconds */
-
-unsigned
-stats_rtclock( void )
-{
-  struct timeval t;
-  struct timezone tz;
-
-  if (gettimeofday( &t, &tz ) == -1)
-    return 0;
-  return (t.tv_sec * 1000 + t.tv_usec / 1000);
-}
-
-static const int kStretchTreeDepth    = 18;      // about 16Mb
-static const int kLongLivedTreeDepth  = 16;  // about 4Mb
-static const int kArraySize  = 500000;  // about 4Mb
-static const int kMinTreeDepth = 4;
-static const int kMaxTreeDepth = 16;
-
-typedef struct Node0_struct {
-        struct Node0_struct * left;
-        struct Node0_struct * right;
-        int i, j;
-} Node0;
-
-#ifdef HOLES
-#   define HOLE() GC_NEW(Node0);
-#else
-#   define HOLE()
-#endif
-
-typedef Node0 *Node;
-
-void init_Node(Node me, Node l, Node r) {
-    me -> left = l;
-    me -> right = r;
-}
-
-#ifndef GC
-  void destroy_Node(Node me) {
-    if (me -> left) {
-       destroy_Node(me -> left);
-    }
-    if (me -> right) {
-       destroy_Node(me -> right);
-    }
-    free(me);
-  }
-#endif
-
-// Nodes used by a tree of a given size
-static int TreeSize(int i) {
-        return ((1 << (i + 1)) - 1);
-}
-
-// Number of iterations to use for a given tree depth
-static int NumIters(int i) {
-        return 2 * TreeSize(kStretchTreeDepth) / TreeSize(i);
-}
-
-// Build tree top down, assigning to older objects.
-static void Populate(int iDepth, Node thisNode) {
-        if (iDepth<=0) {
-                return;
-        } else {
-                iDepth--;
-#              ifdef GC
-                  thisNode->left  = GC_NEW(Node0); HOLE();
-                  thisNode->right = GC_NEW(Node0); HOLE();
-#              else
-                  thisNode->left  = calloc(1, sizeof(Node0));
-                  thisNode->right = calloc(1, sizeof(Node0));
-#              endif
-                Populate (iDepth, thisNode->left);
-                Populate (iDepth, thisNode->right);
-        }
-}
-
-// Build tree bottom-up
-static Node MakeTree(int iDepth) {
-       Node result;
-        if (iDepth<=0) {
-#          ifndef GC
-               result = calloc(1, sizeof(Node0));
-#          else
-               result = GC_NEW(Node0); HOLE();
-#          endif
-           /* result is implicitly initialized in both cases. */
-           return result;
-        } else {
-           Node left = MakeTree(iDepth-1);
-           Node right = MakeTree(iDepth-1);
-#          ifndef GC
-               result = malloc(sizeof(Node0));
-#          else
-               result = GC_NEW(Node0); HOLE();
-#          endif
-           init_Node(result, left, right);
-           return result;
-        }
-}
-
-static void PrintDiagnostics() {
-#if 0
-        long lFreeMemory = Runtime.getRuntime().freeMemory();
-        long lTotalMemory = Runtime.getRuntime().totalMemory();
-
-        System.out.print(" Total memory available="
-                         + lTotalMemory + " bytes");
-        System.out.println("  Free memory=" + lFreeMemory + " bytes");
-#endif
-}
-
-static void TimeConstruction(int depth) {
-        long    tStart, tFinish;
-        int     iNumIters = NumIters(depth);
-        Node    tempTree;
-       int     i;
-
-       printf("0x%x: Creating %d trees of depth %d\n", pthread_self(), 
iNumIters, depth);
-        
-        tStart = currentTime();
-        for (i = 0; i < iNumIters; ++i) {
-#              ifndef GC
-                  tempTree = calloc(1, sizeof(Node0));
-#              else
-                  tempTree = GC_NEW(Node0);
-#              endif
-                Populate(depth, tempTree);
-#              ifndef GC
-                  destroy_Node(tempTree);
-#              endif
-                tempTree = 0;
-        }
-        tFinish = currentTime();
-        printf("\t0x%x: Top down construction took %d msec\n",
-               pthread_self(), elapsedTime(tFinish - tStart));
-             
-        tStart = currentTime();
-        for (i = 0; i < iNumIters; ++i) {
-                tempTree = MakeTree(depth);
-#              ifndef GC
-                  destroy_Node(tempTree);
-#              endif
-                tempTree = 0;
-        }
-        tFinish = currentTime();
-        printf("\t0x%x: Bottom up construction took %d msec\n",
-               pthread_self(), elapsedTime(tFinish - tStart));
-
-}
-
-void * run_one_test(void * arg) {
-       int d, i;
-        Node    longLivedTree;
-       double  *array;
-       /* size_t initial_bytes = GC_get_total_bytes(); */
-
-        // Create a long lived object
-        printf(" Creating a long-lived binary tree of depth %d\n",
-               kLongLivedTreeDepth);
-#      ifndef GC
-          longLivedTree = calloc(1, sizeof(Node0));
-#      else 
-          longLivedTree = GC_NEW(Node0);
-#      endif
-        Populate(kLongLivedTreeDepth, longLivedTree);
-
-        // Create long-lived array, filling half of it
-       printf(" Creating a long-lived array of %d doubles\n", kArraySize);
-#      ifndef GC
-          array = malloc(kArraySize * sizeof(double));
-#      else
-#        ifndef NO_PTRFREE
-            array = GC_MALLOC_ATOMIC(sizeof(double) * kArraySize);
-#        else
-            array = GC_MALLOC(sizeof(double) * kArraySize);
-#        endif
-#      endif
-        for (i = 0; i < kArraySize/2; ++i) {
-                array[i] = 1.0/i;
-        }
-
-        for (d = kMinTreeDepth; d <= kMaxTreeDepth; d += 2) {
-                TimeConstruction(d);
-        }
-       /* printf("Allocated %ld bytes before start, %ld after\n",
-               initial_bytes, GC_get_total_bytes() - initial_bytes); */
-        if (longLivedTree->left -> right == 0 || array[1000] != 1.0/1000)
-               fprintf(stderr, "Failed\n");
-                                // fake reference to LongLivedTree
-                                // and array
-                                // to keep them from being optimized away
-
-}
-
-int main(int argc, char **argv) {
-        Node    root;
-        Node    tempTree[MAX_NTHREADS];
-        long    tStart, tFinish;
-        long    tElapsed;
-       int     i;
-#      ifdef SGC
-         SGC_attr_t attr;
-#      endif
-
-       if (1 == argc) {
-           nthreads = 1;
-       } else if (2 == argc) {
-           nthreads = atoi(argv[1]);
-           if (nthreads < 1 || nthreads > MAX_NTHREADS) {
-               fprintf(stderr, "Invalid # of threads argument\n");
-               exit(1);
-           }
-       } else {
-           fprintf(stderr, "Usage: %s [# of threads]\n");
-           exit(1);
-       }
-#       if defined(SGC)
-         /* The University of Tokyo collector needs explicit   */
-         /* initialization.                                    */
-         SGC_attr_init(&attr);
-         SGC_init(nthreads, &attr);
-#      endif
-#ifdef GC
- // GC_full_freq = 30;
- // GC_free_space_divisor = 16;
- // GC_enable_incremental();
-#endif
-       printf("Garbage Collector Test\n");
-       printf(" Live storage will peak at %d bytes or less .\n\n",
-               2 * sizeof(Node0) * nthreads
-                * (TreeSize(kLongLivedTreeDepth) + TreeSize(kMaxTreeDepth))
-               + sizeof(double) * kArraySize);
-        PrintDiagnostics();
-        
-#      ifdef GC
-         /* GC_expand_hp fails with empty heap */
-         GC_malloc(1);
-         GC_expand_hp(32*1024*1024*nthreads);
-#      endif
-
-#      ifdef PROFIL
-           init_profiling();
-#      endif
-       
-        tStart = currentTime();
-        {
-         pthread_t thread[MAX_NTHREADS];
-         for (i = 1; i < nthreads; ++i) {
-           int code;
-
-           if ((code = pthread_create(thread+i, 0, run_one_test, 0)) != 0) {
-             fprintf(stderr, "Thread creation failed %u\n", code);
-             exit(1);
-           }
-         }
-         /* We use the main thread to run one test.  This allows       */
-         /* profiling to work, for example.                            */
-         run_one_test(0);
-         for (i = 1; i < nthreads; ++i) {
-           int code;
-           if ((code = pthread_join(thread[i], 0)) != 0) {
-               fprintf(stderr, "Thread join failed %u\n", code);
-           }
-         }
-        }
-        PrintDiagnostics();
-
-        tFinish = currentTime();
-        tElapsed = elapsedTime(tFinish-tStart);
-        PrintDiagnostics();
-        printf("Completed in %d msec\n", tElapsed);
-#      ifdef GC
-         printf("Completed %d collections\n", GC_gc_no);
-         printf("Heap size is %d\n", GC_get_heap_size());
-#       endif
-#      ifdef PROFIL
-         dump_profile();
-#      endif
-        return 0;
-}
-
diff --git a/gcbench-types.h b/gcbench-types.h
deleted file mode 100644
index a61b2b7d5..000000000
--- a/gcbench-types.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef GCBENCH_TYPES_H
-#define GCBENCH_TYPES_H
-
-#define FOR_EACH_HEAP_OBJECT_KIND(M) \
-  M(node, Node, NODE) \
-  M(double_array, DoubleArray, DOUBLE_ARRAY)
-
-#include "heap-objects.h"
-
-#endif // GCBENCH_TYPES_H

Reply via email to