diff mbox

shrink-wrap: Fix problem with DF checking (PR78400)

Message ID 3d143159dde4d93c0de25d8d3b70f7c7858f1530.1479555873.git.segher@kernel.crashing.org
State New
Headers show

Commit Message

Segher Boessenkool Nov. 19, 2016, 11:49 a.m. UTC
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  <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.

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

Comments

Richard Biener Nov. 21, 2016, 9:23 a.m. UTC | #1
On Sat, Nov 19, 2016 at 12:49 PM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> 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,

Ok.

Richard.

>
> Segher
>
>
> 2016-11-19  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.
>
> ---
>  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
>
diff mbox

Patch

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