> > > > Tests that now fail, but worked before (15 tests): > > > > g++.dg/tree-ssa/pr61034.C -std=gnu++14 scan-tree-dump-times fre3 ";; > > Function" 1 > > g++.dg/tree-ssa/pr61034.C -std=gnu++14 scan-tree-dump-times fre3 "free" 14 > > g++.dg/tree-ssa/pr61034.C -std=gnu++14 scan-tree-dump-times optimized > > "free" 0 > > g++.dg/tree-ssa/pr61034.C -std=gnu++17 scan-tree-dump-times fre3 ";; > > Function" 1 > > g++.dg/tree-ssa/pr61034.C -std=gnu++17 scan-tree-dump-times fre3 "free" 14 > > g++.dg/tree-ssa/pr61034.C -std=gnu++17 scan-tree-dump-times optimized > > "free" 0 > > g++.dg/tree-ssa/pr61034.C -std=gnu++98 scan-tree-dump-times fre3 ";; > > Function" 1 > > g++.dg/tree-ssa/pr61034.C -std=gnu++98 scan-tree-dump-times fre3 "free" 14 > > g++.dg/tree-ssa/pr61034.C -std=gnu++98 scan-tree-dump-times optimized > > "free" 0 > > There were others, but starting with these seems as good as any.
Sorry for that. Seems I managed to leave this one out of the final patch. It is very sensitive to how things are inlined. If it breaks again I guess I will try to work out explicit noinline/always_inline attributes to make it to work. I have commited the following which returns the inliner to previous behaviour. Honza 2019-10-03 Jan Hubicka <hubi...@ucw.cz> * g++.dg/tree-ssa/pr61034.C: Add --param max-inline-insns-single-O2=200. Index: g++.dg/tree-ssa/pr61034.C =================================================================== --- g++.dg/tree-ssa/pr61034.C (revision 276505) +++ g++.dg/tree-ssa/pr61034.C (working copy) @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-O2 -fdump-tree-fre3 -fdump-tree-optimized -fdelete-null-pointer-checks --param early-inlining-insns-O2=14" } +// { dg-options "-O2 -fdump-tree-fre3 -fdump-tree-optimized -fdelete-null-pointer-checks --param early-inlining-insns-O2=14 --param max-inline-insns-single-O2=200" } #define assume(x) if(!(x))__builtin_unreachable()