With my previous patch the compiler ICEs if you use --enable-checking=df.
This patch fixes it, by calling df_update_entry_exit_and_calls instead of
df_update_entry_block_defs and df_update_exit_block_uses.

Bootstrapped and checked on powerpc64-linux (also with --enable-checking=df).
Is this okay for trunk?  Thanks,


Segher


2016-11-19  Segher Boessenkool  <seg...@kernel.crashing.org>

        PR rtl-optimization/78400
        * shrink-wrap.c (try_shrink_wrapping_separate): Call
        df_update_entry_exit_and_calls instead of df_update_entry_block_defs
        and df_update_exit_block_uses.

---
 gcc/shrink-wrap.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c
index f838696..59feca1 100644
--- a/gcc/shrink-wrap.c
+++ b/gcc/shrink-wrap.c
@@ -1798,8 +1798,7 @@ try_shrink_wrapping_separate (basic_block first_bb)
      the register for that component is in the IN or GEN or KILL set for
      that block.  */
   df_scan->local_flags |= DF_SCAN_EMPTY_ENTRY_EXIT;
-  df_update_entry_block_defs ();
-  df_update_exit_block_uses ();
+  df_update_entry_exit_and_calls ();
   df_live_add_problem ();
   df_live_set_all_dirty ();
   df_analyze ();
@@ -1867,8 +1866,7 @@ try_shrink_wrapping_separate (basic_block first_bb)
 
   /* All done.  */
   df_scan->local_flags &= ~DF_SCAN_EMPTY_ENTRY_EXIT;
-  df_update_entry_block_defs ();
-  df_update_exit_block_uses ();
+  df_update_entry_exit_and_calls ();
   df_live_set_all_dirty ();
   df_analyze ();
 }
-- 
1.9.3

Reply via email to