diff options
author | Alexey Makhalov <makhaloff@gmail.com> | 2013-08-20 15:14:49 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2013-08-20 09:14:49 -0600 |
commit | a046136a50df8d31ec75e1dd2b1279d028431d51 (patch) | |
tree | 31ae97c38102764614a92faf7fac92a4df0b319e /gcc | |
parent | bf7a6c1cb1535d89520daac4c9080dfc3ad02797 (diff) | |
download | gcc-a046136a50df8d31ec75e1dd2b1279d028431d51.zip gcc-a046136a50df8d31ec75e1dd2b1279d028431d51.tar.gz gcc-a046136a50df8d31ec75e1dd2b1279d028431d51.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dce.c | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 208b291..516d951 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 @@ -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 (); + } } |