This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 1/8] gcno file: do not stream block flags (PR gcov-profile/80031).


gcc/ChangeLog:

2017-03-13  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/80031
	* gcov-dump.c (tag_blocks): Just print number of basic blocks.
	* gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
	* gcov.c (read_graph_file): Read just number of blocks.
	* profile.c (branch_prob): Do not stream 0 flags per a basic
	block.
---
 gcc/gcov-dump.c | 22 ++--------------------
 gcc/gcov-io.h   |  1 -
 gcc/gcov.c      |  7 +------
 gcc/profile.c   |  3 +--
 4 files changed, 4 insertions(+), 29 deletions(-)

diff --git a/gcc/gcov-dump.c b/gcc/gcov-dump.c
index 47db1795313..f2522577e9d 100644
--- a/gcc/gcov-dump.c
+++ b/gcc/gcov-dump.c
@@ -318,27 +318,9 @@ tag_function (const char *filename ATTRIBUTE_UNUSED,
 static void
 tag_blocks (const char *filename ATTRIBUTE_UNUSED,
 	    unsigned tag ATTRIBUTE_UNUSED, unsigned length ATTRIBUTE_UNUSED,
-	    unsigned depth)
+	    unsigned depth ATTRIBUTE_UNUSED)
 {
-  unsigned n_blocks = GCOV_TAG_BLOCKS_NUM (length);
-
-  printf (" %u blocks", n_blocks);
-
-  if (flag_dump_contents)
-    {
-      unsigned ix;
-
-      for (ix = 0; ix != n_blocks; ix++)
-	{
-	  if (!(ix & 7))
-	    {
-	      printf ("\n");
-	      print_prefix (filename, depth, gcov_position ());
-	      printf (VALUE_PADDING_PREFIX VALUE_PREFIX, ix);
-	    }
-	  printf ("%04x ", gcov_read_unsigned ());
-	}
-    }
+  printf (" %u blocks", gcov_read_unsigned ());
 }
 
 static void
diff --git a/gcc/gcov-io.h b/gcc/gcov-io.h
index 1fb58dd918e..1c8ee8f9a2a 100644
--- a/gcc/gcov-io.h
+++ b/gcc/gcov-io.h
@@ -230,7 +230,6 @@ typedef uint64_t gcov_type_unsigned;
 #define GCOV_TAG_FUNCTION_LENGTH (3)
 #define GCOV_TAG_BLOCKS		 ((gcov_unsigned_t)0x01410000)
 #define GCOV_TAG_BLOCKS_LENGTH(NUM) (NUM)
-#define GCOV_TAG_BLOCKS_NUM(LENGTH) (LENGTH)
 #define GCOV_TAG_ARCS		 ((gcov_unsigned_t)0x01430000)
 #define GCOV_TAG_ARCS_LENGTH(NUM)  (1 + (NUM) * 2)
 #define GCOV_TAG_ARCS_NUM(LENGTH)  (((LENGTH) - 1) / 2)
diff --git a/gcc/gcov.c b/gcc/gcov.c
index bb26a1a9787..63f6a75f1af 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -129,7 +129,6 @@ typedef struct block_info
 
   /* Block execution count.  */
   gcov_type count;
-  unsigned flags : 12;
   unsigned count_valid : 1;
   unsigned valid_chain : 1;
   unsigned invalid_chain : 1;
@@ -1374,12 +1373,8 @@ read_graph_file (void)
 		     bbg_file_name, fn->name);
 	  else
 	    {
-	      unsigned ix, num_blocks = GCOV_TAG_BLOCKS_NUM (length);
-	      fn->num_blocks = num_blocks;
-
+	      fn->num_blocks = gcov_read_unsigned ();
 	      fn->blocks = XCNEWVEC (block_t, fn->num_blocks);
-	      for (ix = 0; ix != num_blocks; ix++)
-		fn->blocks[ix].flags = gcov_read_unsigned ();
 	    }
 	}
       else if (fn && tag == GCOV_TAG_ARCS)
diff --git a/gcc/profile.c b/gcc/profile.c
index c6f462d2f7a..c7eed0e3dfd 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -1195,8 +1195,7 @@ branch_prob (void)
 
       /* Basic block flags */
       offset = gcov_write_tag (GCOV_TAG_BLOCKS);
-      for (i = 0; i != (unsigned) (n_basic_blocks_for_fn (cfun)); i++)
-	gcov_write_unsigned (0);
+      gcov_write_unsigned (n_basic_blocks_for_fn (cfun));
       gcov_write_length (offset);
 
       /* Arcs */
-- 
2.12.2



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]