emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's 2001-02-24 which...
authorJeffrey Oldham <oldham@codesourcery.com>
Mon, 12 Mar 2001 22:22:54 +0000 (22:22 +0000)
committerJeffrey D. Oldham <oldham@gcc.gnu.org>
Mon, 12 Mar 2001 22:22:54 +0000 (22:22 +0000)
2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>

* emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
2001-02-24 which broke building the Java library.
* function.c (identify_blocks): Likewise.
(all_blocks): Likewise.
* integrate.c (integrate_decl_tree): Likewise.
* print-tree.c (print_node): Likewise.
* tree.h (BLOCK_NUMBER): Likewise.
(struct tree_block): Likewise.

From-SVN: r40431

gcc/ChangeLog
gcc/emit-rtl.c
gcc/function.c
gcc/integrate.c
gcc/print-tree.c
gcc/tree.h

index 4f50d1b2117407ec57ce5d7937ed4b836d49e4e1..912cd5f3cb1772b25d0079e1d27ee08256dad1ac 100644 (file)
@@ -1,3 +1,14 @@
+2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
+       2001-02-24 which broke building the Java library.
+       * function.c (identify_blocks): Likewise.
+       (all_blocks): Likewise.
+       * integrate.c (integrate_decl_tree): Likewise.
+       * print-tree.c (print_node): Likewise.
+       * tree.h (BLOCK_NUMBER): Likewise.
+       (struct tree_block): Likewise.
+
 2001-03-12  David Edelsohn  <edelsohn@gnu.org>
 
        * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in
index 6ac8ac155bc3a0a172ad956157d698e82fa34046..d95df87907a29a70c1693ad5b4be563bdeb81a30 100644 (file)
@@ -2907,7 +2907,6 @@ remove_unnecessary_notes ()
                     with the block_stack check above.  */
                  if (debug_ignore_block (NOTE_BLOCK (insn)))
                    {
-                     BLOCK_DEAD (NOTE_BLOCK (insn)) = 1;
                      remove_insn (tmp);
                      remove_insn (insn);
                    }
index 63aa5b5ee7f90e6482430daa4cd1beb472808a96..dde5ee09f761b19243e04bc9ab0a69c80cf7b555 100644 (file)
@@ -5740,7 +5740,8 @@ identify_blocks ()
                                         block_stack);
 
   /* If we didn't use all of the subblocks, we've misplaced block notes.  */
-  if (last_block_vector != block_vector + n_blocks)
+  /* ??? This appears to happen all the time.  Latent bugs elsewhere?  */
+  if (0 && last_block_vector != block_vector + n_blocks)
     abort ();
 
   free (block_vector);
@@ -5946,28 +5947,27 @@ blocks_nreverse (t)
    blocks.  */
 
 static int
-all_blocks (blocks, vector)
-     tree blocks;
+all_blocks (block, vector)
+     tree block;
      tree *vector;
 {
   int n_blocks = 0;
-  tree block;
 
-  for (block = blocks; block != 0; block = TREE_CHAIN (block))
-    if (!BLOCK_DEAD (block))
-      {
-       TREE_ASM_WRITTEN (block) = 0;
+  while (block)
+    {
+      TREE_ASM_WRITTEN (block) = 0;
 
-       /* Record this block.  */
-       if (vector)
-         vector[n_blocks] = block;
+      /* Record this block.  */
+      if (vector)
+       vector[n_blocks] = block;
 
-       ++n_blocks;
+      ++n_blocks;
 
-       /* Record the subblocks, and their subblocks...  */
-       n_blocks += all_blocks (BLOCK_SUBBLOCKS (block),
-                               vector ? vector + n_blocks : 0);
-      }
+      /* Record the subblocks, and their subblocks...  */
+      n_blocks += all_blocks (BLOCK_SUBBLOCKS (block),
+                             vector ? vector + n_blocks : 0);
+      block = BLOCK_CHAIN (block);
+    }
 
   return n_blocks;
 }
index 23f3590b4f37b695cd7c16572a82eaa37b36feda..270a9c5a115317e75491ab391c6e85fa46fb6a97 100644 (file)
@@ -1684,12 +1684,11 @@ integrate_decl_tree (let, map)
 
   next = &BLOCK_SUBBLOCKS (new_block);
   for (t = BLOCK_SUBBLOCKS (let); t; t = BLOCK_CHAIN (t))
-    if (!BLOCK_DEAD (t))
-      {
-       *next = integrate_decl_tree (t, map);
-       BLOCK_SUPERCONTEXT (*next) = new_block;
-       next = &BLOCK_CHAIN (*next);
-      }
+    {
+      *next = integrate_decl_tree (t, map);
+      BLOCK_SUPERCONTEXT (*next) = new_block;
+      next = &BLOCK_CHAIN (*next);
+    }
 
   TREE_USED (new_block) = TREE_USED (let);
   BLOCK_ABSTRACT_ORIGIN (new_block) = let;
index 7e49ee0f949bd986cb27ab43681f18101cf3198b..3bbea3f52f0aa7b85c8dff92cf428eac851cc36c 100644 (file)
@@ -584,14 +584,6 @@ print_node (file, prefix, node, indent)
       break;
 
     case 'b':
-      if (BLOCK_ABSTRACT (node))
-       fprintf (file, " abstract");
-      if (BLOCK_HANDLER_BLOCK (node))
-       fprintf (file, " handler-block");
-      if (BLOCK_DEAD (node))
-       fprintf (file, " dead");
-      fprintf (file, " block-number %d", BLOCK_NUMBER (node));
-
       print_node (file, "vars", BLOCK_VARS (node), indent + 4);
       print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node), indent + 4);
       print_node (file, "subblocks", BLOCK_SUBBLOCKS (node), indent + 4);
index d6dde70b56315c49ab04a06be17a48f812015376..4ec4321663a6b9894eedc8d0f57f885b7dee099b 100644 (file)
@@ -830,10 +830,6 @@ struct tree_exp
    listed in the BLOCK_VARS slot.  */
 #define BLOCK_HANDLER_BLOCK(NODE) (BLOCK_CHECK (NODE)->block.handler_block_flag)
 
-/* Nonzero means the block was deleted as dead and should not be copied
-   when a function is inlined.  */
-#define BLOCK_DEAD(NODE) (BLOCK_CHECK (NODE)->block.dead_flag)
-
 /* An index number for this block.  These values are not guaranteed to
    be unique across functions -- whether or not they are depends on
    the debugging output format in use.  */
@@ -845,8 +841,7 @@ struct tree_block
 
   unsigned handler_block_flag : 1;
   unsigned abstract_flag : 1;
-  unsigned dead_flag : 1;
-  unsigned block_num : 29;
+  unsigned block_num : 30;
 
   union tree_node *vars;
   union tree_node *subblocks;