OSDN Git Service

* cgraphunit.c (cgraph_mark_functions_to_output): Renable node
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 2004 15:58:21 +0000 (15:58 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 2004 15:58:21 +0000 (15:58 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87241 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 652fbfb..b1ec626 100644 (file)
@@ -1,5 +1,16 @@
 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,
        cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
        process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
index 81df309..d0048a8 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 9f9289b..ab721fe 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 f3385ca..dc8ff6e 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 7b9c53f..c7031e1 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;
     }