mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-21 12:41:19 +08:00
re PR rtl-optimization/42889 ("-fcompare-debug failure (length)" with "-O1 -fgcse")
PR debug/42889 * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns. * df-core.c (df_set_bb_dirty_nonrl): Remove. * df.h (df_set_bb_dirty_nonlr): Likewise. From-SVN: r166719
This commit is contained in:
parent
44538c626c
commit
f9aeaebf75
@ -1,3 +1,10 @@
|
||||
2010-11-13 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/42889
|
||||
* df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
|
||||
* df-core.c (df_set_bb_dirty_nonrl): Remove.
|
||||
* df.h (df_set_bb_dirty_nonlr): Likewise.
|
||||
|
||||
2010-11-13 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/mips/mips.md (call_internal): Pass curr_insn to
|
||||
|
@ -1427,29 +1427,6 @@ df_set_bb_dirty (basic_block bb)
|
||||
}
|
||||
|
||||
|
||||
/* Mark BB as needing it's transfer functions as being out of
|
||||
date, except for LR problem. Used when analyzing DEBUG_INSNs,
|
||||
as LR problem can trigger DCE, and DEBUG_INSNs shouldn't ever
|
||||
shorten or enlarge lifetime of regs. */
|
||||
|
||||
void
|
||||
df_set_bb_dirty_nonlr (basic_block bb)
|
||||
{
|
||||
if (df)
|
||||
{
|
||||
int p;
|
||||
for (p = 1; p < df->num_problems_defined; p++)
|
||||
{
|
||||
struct dataflow *dflow = df->problems_in_order[p];
|
||||
if (dflow == df_lr)
|
||||
continue;
|
||||
if (dflow->out_of_date_transfer_functions)
|
||||
bitmap_set_bit (dflow->out_of_date_transfer_functions, bb->index);
|
||||
dflow->solutions_dirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Grow the bb_info array. */
|
||||
|
||||
void
|
||||
|
@ -1261,9 +1261,7 @@ df_insn_rescan (rtx insn)
|
||||
}
|
||||
|
||||
df_refs_add_to_chains (&collection_rec, bb, insn);
|
||||
if (DEBUG_INSN_P (insn))
|
||||
df_set_bb_dirty_nonlr (bb);
|
||||
else
|
||||
if (!DEBUG_INSN_P (insn))
|
||||
df_set_bb_dirty (bb);
|
||||
|
||||
VEC_free (df_ref, stack, collection_rec.def_vec);
|
||||
|
1
gcc/df.h
1
gcc/df.h
@ -897,7 +897,6 @@ extern void df_simple_dataflow (enum df_flow_dir, df_init_function,
|
||||
extern void df_mark_solutions_dirty (void);
|
||||
extern bool df_get_bb_dirty (basic_block);
|
||||
extern void df_set_bb_dirty (basic_block);
|
||||
extern void df_set_bb_dirty_nonlr (basic_block);
|
||||
extern void df_compact_blocks (void);
|
||||
extern void df_bb_replace (int, basic_block);
|
||||
extern void df_bb_delete (int);
|
||||
|
Loading…
x
Reference in New Issue
Block a user