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