df-scan.c (df_notes_rescan): Do nothing if the instruction does not yet have a basic block.

gcc/
	* df-scan.c (df_notes_rescan): Do nothing if the instruction does
	not yet have a basic block.
	* dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.

From-SVN: r128563
This commit is contained in:
Richard Sandiford 2007-09-17 23:41:36 +00:00 committed by Richard Sandiford
parent a765d68e75
commit c9b69ba258
3 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
* df-scan.c (df_notes_rescan): Do nothing if the instruction does
not yet have a basic block.
* dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
* config/mips/mips.c (mips_file_start): Add ".previous" directives

View File

@ -2004,6 +2004,10 @@ df_notes_rescan (rtx insn)
if (df->changeable_flags & DF_NO_INSN_RESCAN)
return;
/* Do nothing if the insn hasn't been emitted yet. */
if (!BLOCK_FOR_INSN (insn))
return;
df_grow_bb_info (df_scan);
df_grow_reg_info ();

View File

@ -1428,10 +1428,8 @@ find_shift_sequence (rtx read_reg,
/* In theory we could also check for an ashr. Ian Taylor knows
of one dsp where the cost of these two was not the same. But
this really is a rare case anyway. */
df_set_flags (DF_NO_INSN_RESCAN);
target = expand_binop (new_mode, lshr_optab, new_reg,
GEN_INT (shift), new_reg, 1, OPTAB_DIRECT);
df_clear_flags (DF_NO_INSN_RESCAN);
if (target == new_reg)
{