re PR rtl-optimization/32355 (ICE in df_lr_verify_transfer_functions, at df-problems.c:1924)

2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/32355
	* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
	cse_main.
	* df-problems.c (df_note_bb_compute): Fix dumping info.
	
2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>

	* gcc.c-torture/compile/pr32355.c: New testcase.

From-SVN: r125812
This commit is contained in:
Kenneth Zadeck 2007-06-18 16:47:05 +00:00 committed by Kenneth Zadeck
parent b8afffc15f
commit 8b9d606b39
5 changed files with 47 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/32355
* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
cse_main.
* df-problems.c (df_note_bb_compute): Fix dumping info.
2007-06-18 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (m68k_expand_epilogue): Emit a return

View File

@ -3867,8 +3867,10 @@ df_note_bb_compute (unsigned int bb_index,
for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
{
struct df_ref *def = *def_rec;
#ifdef REG_DEAD_DEBUGGING
if (dump_file)
fprintf (dump_file, "artificial def %d\n", DF_REF_REGNO (def));
#endif
if ((DF_REF_FLAGS (def) & DF_REF_AT_TOP) == 0)
bitmap_clear_bit (live, DF_REF_REGNO (def));

View File

@ -6704,6 +6704,7 @@ rest_of_handle_gcse (void)
{
timevar_push (TV_CSE);
tem2 = cse_main (get_insns (), max_reg_num ());
df_finish_pass ();
purge_all_dead_edges ();
delete_trivially_dead_insns (get_insns (), max_reg_num ());
timevar_pop (TV_CSE);

View File

@ -1,3 +1,7 @@
2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.c-torture/compile/pr32355.c: New testcase.
2007-06-18 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/32383

View File

@ -0,0 +1,33 @@
/* { dg-options "-O3" } */
typedef struct
{
}
__sigset_t;
typedef struct
{
char coredump;
}
EMode;
extern EMode Mode;
struct sigaction
{
__sigset_t sa_mask;
int sa_flags;
};
doSignalsSetup (void)
{
static const int signals[] = {
1, 2 , 3, 4, 6, 8, 11, 13, 14, 15, 10, 12, 17, 7
};
unsigned int i, sig;
struct sigaction sa;
for (i = 0; i < sizeof (signals) / sizeof (int); i++)
{
sig = signals[i];
if (Mode.coredump && (sig == 4 || sig == 8))
continue;
sa.sa_flags = (sig == 17);
sigemptyset (&sa.sa_mask);
}
}