[PATCH] Use HOST_WIDEST_INT in bitmap statistics, PR 39301

Bradley Lucier lucier@math.purdue.edu
Sat May 16 14:47:00 GMT 2009


Richard Guenther asked me to post this to gcc-patches.

Brad

	PR 39301
	* hwint.h: Add macro HOST_WIDEST_INT_PRINT.
	* bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
	(output_info): Make field HOST_WIDEST_INT.
	(print_statistics): Use HOST_WIDEST_INT_PRINT.
	(dump_bitmat_statistics): Same.


Index: gcc/bitmap.c
===================================================================
--- gcc/bitmap.c	(revision 147594)
+++ gcc/bitmap.c	(working copy)
@@ -37,10 +37,10 @@
    const char *function;
    const char *file;
    int line;
-  int allocated;
    int created;
-  int peak;
-  int current;
+  HOST_WIDEST_INT allocated;
+  HOST_WIDEST_INT peak;
+  HOST_WIDEST_INT current;
    int nsearches;
  };

@@ -2013,8 +2013,8 @@
  /* Used to accumulate statistics about bitmap sizes.  */
  struct output_info
  {
+  HOST_WIDEST_INT size;
    int count;
-  int size;
  };

  /* Called via htab_traverse.  Output bitmap descriptor pointed out  
by SLOT
@@ -2034,8 +2034,9 @@
  	s1 = s2 + 4;
        sprintf (s, "%s:%i (%s)", s1, d->line, d->function);
        s[41] = 0;
-      fprintf (stderr, "%-41s %6d %10d %10d %10d %10d\n", s,
-	       d->created, d->allocated, d->peak, d->current, d->nsearches);
+      fprintf (stderr, "%-41s %8d %15"HOST_WIDEST_INT_PRINT"d %15"
+	       HOST_WIDEST_INT_PRINT"d %15"HOST_WIDEST_INT_PRINT"d %10d\n",
+	       s, d->created, d->allocated, d->peak, d->current, d- 
 >nsearches);
        i->size += d->allocated;
        i->count += d->created;
      }
@@ -2053,14 +2054,14 @@
      return;

    fprintf (stderr, "\nBitmap                                      
Overall "
-		   "Allocated     Peak        Leak   searched "
+		   "   Allocated        Peak           Leak   searched "
  		   "  per search\n");
    fprintf (stderr,  
"----------------------------------------------------------------------- 
----------\n");
    info.count = 0;
    info.size = 0;
    htab_traverse (bitmap_desc_hash, print_statistics, &info);
    fprintf (stderr,  
"----------------------------------------------------------------------- 
----------\n");
-  fprintf (stderr, "%-40s %7d %10d\n",
+  fprintf (stderr, "%-40s %9d %15"HOST_WIDEST_INT_PRINT"d\n",
  	   "Total", info.count, info.size);
    fprintf (stderr,  
"----------------------------------------------------------------------- 
----------\n");
  #endif
Index: gcc/hwint.h
===================================================================
--- gcc/hwint.h	(revision 147594)
+++ gcc/hwint.h	(working copy)
@@ -99,6 +99,7 @@
      || (HOST_BITS_PER_LONGLONG < 64 && HOST_BITS_PER___INT64 < 64)
  # define HOST_WIDEST_INT		      HOST_WIDE_INT
  # define HOST_BITS_PER_WIDEST_INT	      HOST_BITS_PER_WIDE_INT
+# define HOST_WIDEST_INT_PRINT                HOST_WIDE_INT_PRINT
  # define HOST_WIDEST_INT_PRINT_DEC	      HOST_WIDE_INT_PRINT_DEC
  # define HOST_WIDEST_INT_PRINT_DEC_C	      HOST_WIDE_INT_PRINT_DEC_C
  # define HOST_WIDEST_INT_PRINT_UNSIGNED	       
HOST_WIDE_INT_PRINT_UNSIGNED
@@ -116,6 +117,7 @@
      #error "This line should be impossible to reach"
  #  endif
  # endif
+# define HOST_WIDEST_INT_PRINT                HOST_LONG_LONG_FORMAT
  # define HOST_WIDEST_INT_PRINT_DEC	      "%" HOST_LONG_LONG_FORMAT "d"
  # define HOST_WIDEST_INT_PRINT_DEC_C	      "%"  
HOST_LONG_LONG_FORMAT "dLL"
  # define HOST_WIDEST_INT_PRINT_UNSIGNED	      "%"  
HOST_LONG_LONG_FORMAT "u"



More information about the Gcc-patches mailing list