[Bug target/93372] cris performance regressions due to de-cc0 work

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jul 13 08:15:26 GMT 2020


--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Hans-Peter Nilsson <hp@gcc.gnu.org>:


commit r11-2048-gef07c7a5884c130b48e653993bfaaf1ae9e6dedd
Author: Hans-Peter Nilsson <hp@axis.com>
Date:   Wed Jul 8 23:59:12 2020 +0200

    cris: Use addi.b for additions where flags aren't inspected

    Comparing to the cc0 version of the CRIS port, I ran a few
    microbenchmarks, for example gcc.c-torture/execute/arith-rand.c,
    where there's sometimes an addition between an operation of
    interest and the test on the result.

    Unfortunately this patch doesn't remedy all the performance
    regression for that program.  But, this patch by itself helps
    and makes sense to commit separately: lots of addi.b in
    previously empty delay-slots, with functions shortened by one or
    a few insns, in libgcc.  I had an experience with the
    reload-related caveat of % on constraints, which is "fixed"
    documentationwise since long (soon 15 years ago;
    be3914df4cc8/r105517).  I removed an even older related FIXME.

            PR target/93372
            * config/cris/cris.md ("*add<mode>3_addi"): New splitter.
            ("*addi_b_<mode>"): New pattern.
            ("*addsi3<setnz>"): Remove stale %-related comment.

            PR target/93372
            * gcc.target/cris/pr93372-45.c: New test.

More information about the Gcc-bugs mailing list