From 1a2caa7a8018a5f0c3b1df9710ec2baad90c24db Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Thu, 9 Sep 2004 15:58:21 +0000 Subject: [PATCH] cgraphunit.c (cgraph_mark_functions_to_output): Renable node dumping for development builds. * 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 | 11 +++++++++++ gcc/cgraphunit.c | 18 +++++++++++++++--- gcc/emit-rtl.c | 13 +++++++++---- gcc/genattrtab.c | 2 +- gcc/tree.c | 6 +++--- 5 files changed, 39 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 652fbfb92f3..b1ec6262758 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2004-09-08 Nathan Sidwell + + * 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 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set, diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 81df3099513..d0048a83731 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -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)); + + } + } } diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 9f9289bfad5..ab721fe8aa7 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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); diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index f3385caa7dc..dc8ff6ebcb3 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -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. */ diff --git a/gcc/tree.c b/gcc/tree.c index 7b9c53f31a7..c7031e16cbe 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -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; } -- 2.30.2