Re: [PATCH] Fix PR rtl-optimization/108274

2023-01-13 Thread Richard Biener via Gcc-patches
On Fri, Jan 13, 2023 at 11:50 AM Eric Botcazou via Gcc-patches
 wrote:
>
> Hi,
>
> unlike other IPA passes, the ICF pass can be run at -O0 and some testcases
> rely on this in the testsuite.  Now it effectively creates a tail call so the
> DF information needs be updated in this case after epilogue creation.
>
> Tested on x86-64/Linux, OK for mainline?

OK.

Richard.

>
>
> 2023-01-13  Eric Botcazou  
>
> PR rtl-optimization/108274
> * function.cc (thread_prologue_and_epilogue_insns): Also update the
> DF information for calls in a few more cases.
>
> --
> Eric Botcazou


[PATCH] Fix PR rtl-optimization/108274

2023-01-13 Thread Eric Botcazou via Gcc-patches
Hi,

unlike other IPA passes, the ICF pass can be run at -O0 and some testcases 
rely on this in the testsuite.  Now it effectively creates a tail call so the 
DF information needs be updated in this case after epilogue creation.

Tested on x86-64/Linux, OK for mainline?


2023-01-13  Eric Botcazou  

PR rtl-optimization/108274
* function.cc (thread_prologue_and_epilogue_insns): Also update the
DF information for calls in a few more cases.

-- 
Eric Botcazoudiff --git a/gcc/function.cc b/gcc/function.cc
index d975b001ec9..95f47d287c5 100644
--- a/gcc/function.cc
+++ b/gcc/function.cc
@@ -6261,7 +6261,10 @@ thread_prologue_and_epilogue_insns (void)
 
   /* Threading the prologue and epilogue changes the artificial refs in the
  entry and exit blocks, and may invalidate DF info for tail calls.  */
-  if (optimize)
+  if (optimize
+  || flag_optimize_sibling_calls
+  || flag_ipa_icf_functions
+  || in_lto_p)
 df_update_entry_exit_and_calls ();
   else
 {