> 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