https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18046

--- Comment #19 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Author: ppalka
Date: Tue Jul 26 15:19:58 2016
New Revision: 238761

URL: https://gcc.gnu.org/viewcvs?rev=238761&root=gcc&view=rev
Log:
Teach VRP to register assertions along default switch labels (PR18046)

gcc/ChangeLog:

        PR tree-optimization/18046
        * genmodes.c (emit_mode_size_inline): Emit an assert that
        verifies that mode is a valid array index.
        (emit_mode_nuinits_inline): Likewise.
        (emit_mode_inner_inline): Likewise.
        (emit_mode_unit_size_inline): Likewise.
        (emit_mode_unit_precision_inline): Likewise.
        * tree-vrp.c: Include params.h.
        (find_switch_asserts): Register edge assertions for the default
        label which correspond to the anti-ranges of each case label.
        * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
        * doc/invoke.texi: Document it.

gcc/testsuite/ChangeLog:

        PR tree-optimization/18046
        * gcc.dg/tree-ssa/ssa-dom-thread-6.c: Bump FSM count to 5.
        * gcc.dg/tree-ssa/vrp103.c: New test.
        * gcc.dg/tree-ssa/vrp104.c: New test.


Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp103.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp104.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/invoke.texi
    trunk/gcc/genmodes.c
    trunk/gcc/params.def
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-6.c
    trunk/gcc/tree-vrp.c

Reply via email to