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

--- Comment #24 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Robin Dapp <rd...@gcc.gnu.org>:

https://gcc.gnu.org/g:01260a823073675e13dd1fc85cf2657a5396adf2

commit r14-8282-g01260a823073675e13dd1fc85cf2657a5396adf2
Author: Juzhe-Zhong <juzhe.zh...@rivai.ai>
Date:   Fri Jan 19 16:34:25 2024 +0800

    RISC-V: Fix RVV_VLMAX

    This patch fixes memory hog found in SPEC2017 wrf benchmark which caused by
    RVV_VLMAX since RVV_VLMAX generate brand new rtx by gen_rtx_REG (Pmode,
X0_REGNUM)
    every time we call RVV_VLMAX, that is, we are always generating garbage and
redundant
    (reg:DI 0 zero) rtx.

    After this patch fix, the memory hog is gone.

    Time variable                                   usr           sys         
wall           GGC
     machine dep reorg                  :   1.99 (  9%)   0.35 ( 56%)   2.33 (
10%)   939M ( 80%) [Before this patch]
     machine dep reorg                  :   1.71 (  6%)   0.16 ( 27%)   3.77 ( 
6%)   659k (  0%) [After this patch]

    Time variable                                   usr           sys         
wall           GGC
     machine dep reorg                  :  75.93 ( 18%)  14.23 ( 88%)  90.15 (
21%) 33383M ( 95%) [Before this patch]
     machine dep reorg                  :  56.00 ( 14%)   7.92 ( 77%)  63.93 (
15%)  4361k (  0%) [After this patch]

    Test is running. Ok for trunk if I passed the test with no regresion ?

            PR target/113495

    gcc/ChangeLog:

            * config/riscv/riscv-protos.h (RVV_VLMAX): Change to
regno_reg_rtx[X0_REGNUM].
            (RVV_VUNDEF): Ditto.
            * config/riscv/riscv-vsetvl.cc: Add timevar.

Reply via email to