cgraphunit.c (cgraph_mark_functions_to_output): Renable node dumping for development...
authorNathan Sidwell <nathan@codesourcery.com>
Thu, 9 Sep 2004 15:58:21 +0000 (15:58 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Thu, 9 Sep 2004 15:58:21 +0000 (15:58 +0000)
* cgraphunit.c (cgraph_mark_functions_to_output): Renable node
dumping for development builds.
* emit-rtl.c (verify_rtx_sharing): Give verbose failure for
development builds only.
* genattrtab.c (write_eligible_delay): Fix typo in previous
commit.
* tree.c (iterative_hash_expr): Replace gcc_unreachable with
gcc_assert.

From-SVN: r87241

gcc/ChangeLog
gcc/cgraphunit.c
gcc/emit-rtl.c
gcc/genattrtab.c
gcc/tree.c

index 652fbfb92f37cab88b09d5cd19735212aada6cf9..b1ec626275881e7aae8e3f018f980a56d78f5066 100644 (file)
@@ -1,3 +1,14 @@
+2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
+       dumping for development builds.
+       * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
+       development builds only.
+       * genattrtab.c (write_eligible_delay): Fix typo in previous
+       commit.
+       * tree.c (iterative_hash_expr): Replace gcc_unreachable with
+       gcc_assert.
+
 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
 
        * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
index 81df309951346bcd6d7397b805376ef948546a5a..d0048a837316872521c059493ab4af9a034ab56b 100644 (file)
@@ -776,9 +776,21 @@ cgraph_mark_functions_to_output (void)
          && !DECL_EXTERNAL (decl))
        node->output = 1;
       else
-       /* We should've reclaimed all functions that are not needed.  */
-       gcc_assert (node->global.inlined_to || !DECL_SAVED_TREE (decl)
-                   || DECL_EXTERNAL (decl));
+       {
+         /* We should've reclaimed all functions that are not needed.  */
+#ifdef ENABLE_CHECKING
+         if (!node->global.inlined_to && DECL_SAVED_TREE (decl)
+             && !DECL_EXTERNAL (decl))
+           {
+             dump_cgraph_node (stderr, node);
+             internal_error ("failed to reclaim unneeded function");
+           }
+#endif
+         gcc_assert (node->global.inlined_to || !DECL_SAVED_TREE (decl)
+                     || DECL_EXTERNAL (decl));
+
+       }
+      
     }
 }
 
index 9f9289bfad5560ce63c9102672a2b557a7fe8643..ab721fe8aa7de71b25ef7afae9e41f7336368ee7 100644 (file)
@@ -2260,15 +2260,18 @@ verify_rtx_sharing (rtx orig, rtx insn)
 
   /* This rtx may not be shared.  If it has already been seen,
      replace it with a copy of itself.  */
-
+#ifdef ENABLE_CHECKING
   if (RTX_FLAG (x, used))
     {
       error ("Invalid rtl sharing found in the insn");
       debug_rtx (insn);
       error ("Shared rtx");
       debug_rtx (x);
-      fatal_error ("Internal consistency failure");
+      internal_error ("Internal consistency failure");
     }
+#endif
+  gcc_assert (!RTX_FLAG (x, used));
+  
   RTX_FLAG (x, used) = 1;
 
   /* Now scan the subexpressions recursively.  */
@@ -2291,9 +2294,11 @@ verify_rtx_sharing (rtx orig, rtx insn)
 
              for (j = 0; j < len; j++)
                {
-                 /* We allow sharing of ASM_OPERANDS inside single instruction.  */
+                 /* We allow sharing of ASM_OPERANDS inside single
+                    instruction.  */
                  if (j && GET_CODE (XVECEXP (x, i, j)) == SET
-                     && GET_CODE (SET_SRC (XVECEXP (x, i, j))) == ASM_OPERANDS)
+                     && (GET_CODE (SET_SRC (XVECEXP (x, i, j)))
+                         == ASM_OPERANDS))
                    verify_rtx_sharing (SET_DEST (XVECEXP (x, i, j)), insn);
                  else
                    verify_rtx_sharing (XVECEXP (x, i, j), insn);
index f3385caa7dc11241823a8dbef909bea8e33412b9..dc8ff6ebcb31b8c2aede80cca12152b50f1555d6 100644 (file)
@@ -4125,7 +4125,7 @@ write_eligible_delay (const char *kind)
   printf ("{\n");
   printf ("  rtx insn;\n");
   printf ("\n");
-  printf ("  gcc_assert (slot < %d)\n", max_slots);
+  printf ("  gcc_assert (slot < %d);\n", max_slots);
   printf ("\n");
   /* Allow dbr_schedule to pass labels, etc.  This can happen if try_split
      converts a compound instruction into a loop.  */
index 7b9c53f31a7eb58123b5764cf774cc5aaa5f8050..c7031e16cbef604be89fc0a928286b96ce800628 100644 (file)
@@ -4044,8 +4044,10 @@ iterative_hash_expr (tree t, hashval_t val)
          /* Decls we can just compare by pointer.  */
          val = iterative_hash_pointer (t, val);
        }
-      else if (IS_EXPR_CODE_CLASS (class))
+      else
        {
+         gcc_assert (IS_EXPR_CODE_CLASS (class));
+         
          val = iterative_hash_object (code, val);
 
          /* Don't hash the type, that can lead to having nodes which
@@ -4080,8 +4082,6 @@ iterative_hash_expr (tree t, hashval_t val)
            for (i = first_rtl_op (code) - 1; i >= 0; --i)
              val = iterative_hash_expr (TREE_OPERAND (t, i), val);
        }
-      else
-       gcc_unreachable ();
       return val;
       break;
     }