cse.c (cse_extended_basic_block): Invalidate artificial defs at bb start.

2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* cse.c (cse_extended_basic_block): Invalidate artificial defs
	at bb start.

From-SVN: r132968
This commit is contained in:
Andreas Krebbel 2008-03-06 11:35:30 +00:00 committed by Andreas Krebbel
parent 4c067742bd
commit e186ff694e
2 changed files with 20 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
* cse.c (cse_extended_basic_block): Invalidate artificial defs
at bb start.
2008-03-06 Richard Guenther <rguenther@suse.de>
* alias.c (struct alias_set_entry): Move has_zero_child field

View file

@ -5992,6 +5992,21 @@ cse_extended_basic_block (struct cse_basic_block_data *ebb_data)
int no_conflict = 0;
bb = ebb_data->path[path_entry].bb;
/* Invalidate recorded information for eh regs if there is an EH
edge pointing to that bb. */
if (bb_has_eh_pred (bb))
{
struct df_ref **def_rec;
for (def_rec = df_get_artificial_defs (bb->index); *def_rec; def_rec++)
{
struct df_ref *def = *def_rec;
if (DF_REF_FLAGS (def) & DF_REF_AT_TOP)
invalidate (DF_REF_REG (def), GET_MODE (DF_REF_REG (def)));
}
}
FOR_BB_INSNS (bb, insn)
{
/* If we have processed 1,000 insns, flush the hash table to