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:
Alexey Makhalov 2013-08-20 15:14:49 +00:00 committed by Jeff Law
parent bf7a6c1cb1
commit a046136a50
2 changed files with 16 additions and 0 deletions

View File

@ -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

View File

@ -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 ();
}
}