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

--- Comment #17 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Roger Sayle <sa...@gcc.gnu.org>:

https://gcc.gnu.org/g:9e7a0e42a15eb53850496e91f2e484ed74ac3617

commit r13-738-g9e7a0e42a15eb53850496e91f2e484ed74ac3617
Author: Roger Sayle <ro...@nextmovesoftware.com>
Date:   Tue May 24 14:29:27 2022 +0100

    Minor improvement to genpreds.cc

    This simple patch implements Richard Biener's suggestion in comment #6
    of PR tree-optimization/52171 (from February 2013) that the insn-preds
    code generated by genpreds can avoid using strncmp when matching constant
    strings of length one.

    The effect of this patch is best explained by the diff of insn-preds.cc:
    <       if (!strncmp (str + 1, "g", 1))
    ---
    >       if (str[1] == 'g')
    3104c3104
    <       if (!strncmp (str + 1, "m", 1))
    ---
    >       if (str[1] == 'm')
    3106c3106
    <       if (!strncmp (str + 1, "c", 1))
    ---
    >       if (str[1] == 'c')
    ...

    The equivalent optimization is performed by GCC (but perhaps not by the
    host compiler), but generating simpler/smaller code may encourage further
    optimizations (such as use of a switch statement).

    2022-05-24  Roger Sayle  <ro...@nextmovesoftware.com>

    gcc/ChangeLog
            * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
            to strncmp for strings of length one.

Reply via email to