On Thu, Nov 14, 2019 at 1:06 PM Martin Liška <mli...@suse.cz> wrote: > > Hi. > > As mentioned in the PR, the patch adds one more late pass_convert_switch > just before switch lowering. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed?
Hmm. I was thinking of moving the pass instead of adding another one. What's the reason to run switch-conversion during early optimization again? But then it's probably not too bad... (and somehow I'd still like to see switch-conversion, switch lowering and if-to-switch be "integrated" somehow, analyzing the IL and then outputting optimized if/switch according to the same cost metric). Richard. > Thanks, > Martin > > gcc/ChangeLog: > > 2019-11-13 Martin Liska <mli...@suse.cz> > > PR tree-optimization/92005 > * passes.def: Add pass_convert_switch late. > * tree-switch-conversion.c: Define clone > method. > > gcc/testsuite/ChangeLog: > > 2019-11-13 Martin Liska <mli...@suse.cz> > > PR tree-optimization/92005 > * g++.dg/tree-ssa/pr92005.C: New test. > * gcc.dg/tree-ssa/cswtch-2.c: Update dump file name. > * gcc.dg/tree-ssa/cswtch-3.c: Likewise. > * gcc.dg/tree-ssa/cswtch-4.c: Likewise. > * gcc.dg/tree-ssa/cswtch-5.c: Likewise. > * gcc.dg/tree-ssa/cswtch.c: Likewise. > * gcc.dg/tree-ssa/pr36881.c: Likewise. > * gcc.dg/tree-ssa/pr84436-1.c: Likewise. > * gcc.dg/tree-ssa/pr84436-2.c: Likewise. > * gcc.dg/tree-ssa/pr84436-3.c: Likewise. > * gcc.dg/tree-ssa/pr84436-4.c: Likewise. > * gcc.dg/tree-ssa/pr84436-5.c: Likewise. > * gcc.dg/tree-ssa/pr88753.c: Likewise. > * gcc.target/i386/pr45830.c: Likewise. > --- > gcc/passes.def | 1 + > gcc/testsuite/g++.dg/tree-ssa/pr92005.C | 50 +++++++++++++++++++++++ > gcc/testsuite/gcc.dg/tree-ssa/cswtch-2.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/cswtch-3.c | 4 +- > gcc/testsuite/gcc.dg/tree-ssa/cswtch-4.c | 4 +- > gcc/testsuite/gcc.dg/tree-ssa/cswtch-5.c | 4 +- > gcc/testsuite/gcc.dg/tree-ssa/cswtch.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/pr36881.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/pr84436-1.c | 4 +- > gcc/testsuite/gcc.dg/tree-ssa/pr84436-2.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/pr84436-3.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/pr84436-4.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/pr84436-5.c | 2 +- > gcc/testsuite/gcc.dg/tree-ssa/pr88753.c | 2 +- > gcc/testsuite/gcc.target/i386/pr45830.c | 2 +- > gcc/tree-switch-conversion.c | 1 + > 16 files changed, 69 insertions(+), 17 deletions(-) > create mode 100644 gcc/testsuite/g++.dg/tree-ssa/pr92005.C > >