ipa/103989 - tame IPA optimizations at -Og

Message ID 6rqq1278-r4n-7n51-1qn-70oqsn3q42n3@fhfr.qr
State Committed
Commit e89b2a270d31d7298d516ae545e256645992c7b9
Headers
Series ipa/103989 - tame IPA optimizations at -Og |

Commit Message

Richard Biener Jan. 18, 2022, 12:35 p.m. UTC
  With -Og we are not prepared to do cleanup after IPA optimizations
and dead code exposed by those confuses late diagnostic passes.
This is a first patch removing unwanted IPA optimizations, namely
both late modref and pure-const analysis.

Bootstrap and regtest running on x86_64-unknown-linux-gnu, OK?

I will also attempt to address the IPA inlining bits but as
separate change.

Thanks,
Richard.

2022-01-18  Richard Biener  <rguenther@suse.de>

	PR ipa/103989
	* passes.def (pass_all_optimizations_g): Remove pass_modref
	and pass_local_pure_const.
---
 gcc/passes.def | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Comments

Jan Hubicka Jan. 18, 2022, 1:52 p.m. UTC | #1
> With -Og we are not prepared to do cleanup after IPA optimizations
> and dead code exposed by those confuses late diagnostic passes.
> This is a first patch removing unwanted IPA optimizations, namely
> both late modref and pure-const analysis.
> 
> Bootstrap and regtest running on x86_64-unknown-linux-gnu, OK?
> 
> I will also attempt to address the IPA inlining bits but as
> separate change.
> 
> Thanks,
> Richard.
> 
> 2022-01-18  Richard Biener  <rguenther@suse.de>
> 
> 	PR ipa/103989
> 	* passes.def (pass_all_optimizations_g): Remove pass_modref
> 	and pass_local_pure_const.
OK,
thanks (I was just testing same change :)

Honza
> ---
>  gcc/passes.def | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/gcc/passes.def b/gcc/passes.def
> index 78808424070..3e75de46c23 100644
> --- a/gcc/passes.def
> +++ b/gcc/passes.def
> @@ -372,6 +372,9 @@ along with GCC; see the file COPYING3.  If not see
>    POP_INSERT_PASSES ()
>    NEXT_PASS (pass_all_optimizations_g);
>    PUSH_INSERT_PASSES_WITHIN (pass_all_optimizations_g)
> +      /* The idea is that with -Og we do not perform any IPA optimization
> +	 so post-IPA work should be restricted to semantically required
> +	 passes and all optimization work is done early.  */
>        NEXT_PASS (pass_remove_cgraph_callee_edges);
>        NEXT_PASS (pass_strip_predict_hints, false /* early_p */);
>        /* Lower remaining pieces of GIMPLE.  */
> @@ -399,8 +402,6 @@ along with GCC; see the file COPYING3.  If not see
>           number of false positives from it.  */
>        NEXT_PASS (pass_split_crit_edges);
>        NEXT_PASS (pass_late_warn_uninitialized);
> -      NEXT_PASS (pass_local_pure_const);
> -      NEXT_PASS (pass_modref);
>        /* uncprop replaces constants by SSA names.  This makes analysis harder
>  	 and thus it should be run last.  */
>        NEXT_PASS (pass_uncprop);
> -- 
> 2.31.1
  

Patch

diff --git a/gcc/passes.def b/gcc/passes.def
index 78808424070..3e75de46c23 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -372,6 +372,9 @@  along with GCC; see the file COPYING3.  If not see
   POP_INSERT_PASSES ()
   NEXT_PASS (pass_all_optimizations_g);
   PUSH_INSERT_PASSES_WITHIN (pass_all_optimizations_g)
+      /* The idea is that with -Og we do not perform any IPA optimization
+	 so post-IPA work should be restricted to semantically required
+	 passes and all optimization work is done early.  */
       NEXT_PASS (pass_remove_cgraph_callee_edges);
       NEXT_PASS (pass_strip_predict_hints, false /* early_p */);
       /* Lower remaining pieces of GIMPLE.  */
@@ -399,8 +402,6 @@  along with GCC; see the file COPYING3.  If not see
          number of false positives from it.  */
       NEXT_PASS (pass_split_crit_edges);
       NEXT_PASS (pass_late_warn_uninitialized);
-      NEXT_PASS (pass_local_pure_const);
-      NEXT_PASS (pass_modref);
       /* uncprop replaces constants by SSA names.  This makes analysis harder
 	 and thus it should be run last.  */
       NEXT_PASS (pass_uncprop);