dce.c (fini_dce): Call df_analyze again just in case delete_unmarked_insns removed anything.
* dce.c (fini_dce): Call df_analyze again just in case delete_unmarked_insns removed anything. From-SVN: r201886
This commit is contained in:
parent
bf7a6c1cb1
commit
a046136a50
|
@ -1,3 +1,8 @@
|
|||
2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
|
||||
|
||||
* dce.c (fini_dce): Call df_analyze again just in case
|
||||
delete_unmarked_insns removed anything.
|
||||
|
||||
2013-08-20 Teresa Johnson <tejohnson@google.com>
|
||||
|
||||
PR rtl-optimizations/57451
|
||||
|
|
11
gcc/dce.c
11
gcc/dce.c
|
@ -745,6 +745,17 @@ fini_dce (bool fast)
|
|||
bitmap_obstack_release (&dce_blocks_bitmap_obstack);
|
||||
bitmap_obstack_release (&dce_tmp_bitmap_obstack);
|
||||
}
|
||||
|
||||
/* If DCE removes the last reference to a hard register, we want
|
||||
to recompute REGS_EVER_LIVE and the global life information.
|
||||
|
||||
Ideally we'd look at REGS_EVER_LIVE before and after and only
|
||||
rerun DF analysis if something changed. */
|
||||
if (!df_in_progress)
|
||||
{
|
||||
df_compute_regs_ever_live (true);
|
||||
df_analyze ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue