Commit 1a2caa7a by Nathan Sidwell Committed by Nathan Sidwell

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
parent 282899df
2004-09-08 Nathan Sidwell <nathan@codesourcery.com> 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, * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set, cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn, process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
......
...@@ -776,9 +776,21 @@ cgraph_mark_functions_to_output (void) ...@@ -776,9 +776,21 @@ cgraph_mark_functions_to_output (void)
&& !DECL_EXTERNAL (decl)) && !DECL_EXTERNAL (decl))
node->output = 1; node->output = 1;
else else
/* We should've reclaimed all functions that are not needed. */ {
gcc_assert (node->global.inlined_to || !DECL_SAVED_TREE (decl) /* We should've reclaimed all functions that are not needed. */
|| DECL_EXTERNAL (decl)); #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));
}
} }
} }
......
...@@ -2260,15 +2260,18 @@ verify_rtx_sharing (rtx orig, rtx insn) ...@@ -2260,15 +2260,18 @@ verify_rtx_sharing (rtx orig, rtx insn)
/* This rtx may not be shared. If it has already been seen, /* This rtx may not be shared. If it has already been seen,
replace it with a copy of itself. */ replace it with a copy of itself. */
#ifdef ENABLE_CHECKING
if (RTX_FLAG (x, used)) if (RTX_FLAG (x, used))
{ {
error ("Invalid rtl sharing found in the insn"); error ("Invalid rtl sharing found in the insn");
debug_rtx (insn); debug_rtx (insn);
error ("Shared rtx"); error ("Shared rtx");
debug_rtx (x); 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; RTX_FLAG (x, used) = 1;
/* Now scan the subexpressions recursively. */ /* Now scan the subexpressions recursively. */
...@@ -2291,9 +2294,11 @@ verify_rtx_sharing (rtx orig, rtx insn) ...@@ -2291,9 +2294,11 @@ verify_rtx_sharing (rtx orig, rtx insn)
for (j = 0; j < len; j++) 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 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); verify_rtx_sharing (SET_DEST (XVECEXP (x, i, j)), insn);
else else
verify_rtx_sharing (XVECEXP (x, i, j), insn); verify_rtx_sharing (XVECEXP (x, i, j), insn);
......
...@@ -4125,7 +4125,7 @@ write_eligible_delay (const char *kind) ...@@ -4125,7 +4125,7 @@ write_eligible_delay (const char *kind)
printf ("{\n"); printf ("{\n");
printf (" rtx insn;\n"); printf (" rtx insn;\n");
printf ("\n"); printf ("\n");
printf (" gcc_assert (slot < %d)\n", max_slots); printf (" gcc_assert (slot < %d);\n", max_slots);
printf ("\n"); printf ("\n");
/* Allow dbr_schedule to pass labels, etc. This can happen if try_split /* Allow dbr_schedule to pass labels, etc. This can happen if try_split
converts a compound instruction into a loop. */ converts a compound instruction into a loop. */
......
...@@ -4044,8 +4044,10 @@ iterative_hash_expr (tree t, hashval_t val) ...@@ -4044,8 +4044,10 @@ iterative_hash_expr (tree t, hashval_t val)
/* Decls we can just compare by pointer. */ /* Decls we can just compare by pointer. */
val = iterative_hash_pointer (t, val); 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); val = iterative_hash_object (code, val);
/* Don't hash the type, that can lead to having nodes which /* Don't hash the type, that can lead to having nodes which
...@@ -4080,8 +4082,6 @@ iterative_hash_expr (tree t, hashval_t val) ...@@ -4080,8 +4082,6 @@ iterative_hash_expr (tree t, hashval_t val)
for (i = first_rtl_op (code) - 1; i >= 0; --i) for (i = first_rtl_op (code) - 1; i >= 0; --i)
val = iterative_hash_expr (TREE_OPERAND (t, i), val); val = iterative_hash_expr (TREE_OPERAND (t, i), val);
} }
else
gcc_unreachable ();
return val; return val;
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment