shrink-wrap: Fix problem with DF checking (PR78400)
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 21 Nov 2016 14:44:21 +0000 (15:44 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 21 Nov 2016 14:44:21 +0000 (15:44 +0100)
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.

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.

From-SVN: r242663

gcc/ChangeLog
gcc/shrink-wrap.c

index 53526b5..a8bc937 100644 (file)
@@ -1,3 +1,10 @@
+2016-11-21  Segher Boessenkool  <segher@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.
+
 2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        PR c++/71973
index 6996d25..8803200 100644 (file)
@@ -1687,8 +1687,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 ();
@@ -1756,8 +1755,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 ();
 }