> 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  <rguent...@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

Reply via email to