diff options
author | Richard Sandiford <rsandifo@nildram.co.uk> | 2007-09-17 23:41:36 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-09-17 23:41:36 +0000 |
commit | c9b69ba2588ce02e591c0a7af0a7ae901f66d8a5 (patch) | |
tree | 8faead7c948ef1e160fbfaebf4e7d1cfab4b0b37 /gcc | |
parent | a765d68e7584986e90b901e453e18c3aa34f9560 (diff) | |
download | gcc-c9b69ba2588ce02e591c0a7af0a7ae901f66d8a5.zip gcc-c9b69ba2588ce02e591c0a7af0a7ae901f66d8a5.tar.gz gcc-c9b69ba2588ce02e591c0a7af0a7ae901f66d8a5.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/df-scan.c | 4 | ||||
-rw-r--r-- | gcc/dse.c | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e8285f..64bdbe7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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 to both ".section"s. diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 6c2c6fa..a1f71b0 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -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 (); @@ -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) { |