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
>
>

Reply via email to