[PATCH] Add if-chain to switch conversion pass.
David Malcolm
dmalcolm@redhat.com
Tue Sep 1 14:50:54 GMT 2020
On Tue, 2020-09-01 at 13:47 +0200, Martin Liška wrote:
> Hello.
>
> There's a new version of the patch attempt. I mentioned couple of
> issues with the v1 here:
> https://gcc.gnu.org/pipermail/gcc-patches/2020-March/542821.html
>
> The patch addresses the biggest blocker which fact that the
> optimization was done unconditionally.
> Now the transformation happens only when a bit test or (and) a jump
> table can be created.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression
> tests. I'm also sending list
> of if-chains that are transformed in GCC.
>
> Thoughts?
> Thanks,
> Martin
Hopefully someone with deeper knowledge of gimple optimizations can
review the patch properly, but here are a few nits I spotted (sorry):
> gcc/ChangeLog:
The older version of the patch had:
PR tree-optimization/14799
PR ipa/88702
in both ChangeLog entries. Should this version?
> * Makefile.in: Add new gimple-if-to-switch.o.
> * common.opt: Add new option.
> * dbgcnt.def (DEBUG_COUNTER): Add new debug counter.
> * doc/invoke.texi:
Presumably "Document -fconvert-if-to-switch." or somesuch.
> * opts.c:
Presumably: "Add -fconvert-if-to-switch at OPT_LEVELS_2_PLUS." or
somesuch.
> * passes.def: Register new pass.
> * timevar.def (TV_TREE_IF_TO_SWITCH): Add new time variable.
> * tree-pass.h (make_pass_if_to_switch): New.
> * tree-switch-conversion.h: New file.
> * gimple-if-to-switch.c: New file.
I believe new C++ source files should have a ".cc" suffix.
> gcc/testsuite/ChangeLog:
(as above re bugzilla entries)
> * gcc.dg/tree-ssa/reassoc-32.c:
Presumably: "Add -fno-convert-if-to-switch."
> * gcc.dg/tree-ssa/if-to-switch-1.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-2.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-3.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-4.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-5.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-6.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-7.c: New test.
> * gcc.dg/tree-ssa/if-to-switch-8.c: New test.
Hope this is constructive
Dave
More information about the Gcc-patches
mailing list