IIRC --enable-checking=yes does not turn on RTL checking.
You need to pass in rtl explicitly using --enable-checking=rtl
You can also pass in a list of checks like this: --enable-checking=yes,rtl

Patrick

On 10/23/23 17:51, juzhe.zh...@rivai.ai wrote:
I don't have such issue:

[jzzhong@rios-cad121:/work/home/jzzhong/work/insn]$~/work/toolchain/riscv/build/dev-rv64gcv_zfh_zvfh-lp64d-medany-newlib-spike-debug/install/bin/riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zfh_zvfh-lp64d-medany-newlib-spike-debug/install/bin/riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zfh_zvfh-lp64d-medany-newlib-spike-debug/install/libexec/gcc/riscv64-unknown-elf/14.0.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with: /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zfh_zvfh-lp64d-medany-newlib-spike-debug/../../gcc/configure --target=riscv64-unknown-elf --prefix=/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zfh_zvfh-lp64d-medany-newlib-spike-debug/install --disable-shared --disable-threads --enable-languages=c,c++ --with-pkgversion=g70b66ac9bcb-dirty --with-system-zlib --enable-tls --with-newlib --with-sysroot=/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zfh_zvfh-lp64d-medany-newlib-spike-debug/install/riscv64-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --disable-tm-clone-registry --src=../../../gcc --enable-checking=yes --disable-multilib --with-abi=lp64d --with-arch=rv64gcv_zfh_zvfh --with-tune=rocket --with-isa-spec=20191213 CFLAGS='-O0 -g3' CXXFLAGS='-O0 -g3' 'CFLAGS_FOR_TARGET=-Os    -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os    -mcmodel=medany'
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 14.0.0 20231023 (experimental) (g70b66ac9bcb-dirty)


------------------------------------------------------------------------
juzhe.zh...@rivai.ai

    *From:* Patrick O'Neill <mailto:patr...@rivosinc.com>
    *Date:* 2023-10-24 07:42
    *To:* 钟居哲 <mailto:juzhe.zh...@rivai.ai>; 丁乐华
    <mailto:lehua.d...@rivai.ai>
    *CC:* kito.cheng <mailto:kito.ch...@gmail.com>; rdapp.gcc
    <mailto:rdapp....@gmail.com>; palmer <mailto:pal...@rivosinc.com>;
    Jeff Law <mailto:jeffreya...@gmail.com>; gcc-patches
    <mailto:gcc-patches@gcc.gnu.org>
    *Subject:* Re: [PATCH V3 00/11] Refactor and cleanup vsetvl pass

    When configuring, pass in --enable-checking=rtl
    If you're using riscv-gnu-toolchain, pass in --enable-gcc-checking=rtl

    The -freport-bug output attached to the bug report has the full
    configure command used:
    /scratch/tc-testing/tc-trunk/build-rtl-checking/../gcc/configure
    --target=riscv64-unknown-linux-gnu
    --prefix=/scratch/tc-testing/tc-trunk/build-rtl-checking
    --with-sysroot=/scratch/tc-testing/tc-trunk/build-rtl-checking/sysroot
    --with-newlib --without-headers --disable-shared --disable-threads
    --with-system-zlib --enable-tls --enable-languages=c
    --disable-libatomic --disable-libmudflap --disable-libssp
    --disable-libquadmath --disable-libgomp --disable-nls
    --disable-bootstrap --src=../../gcc --enable-checking=rtl
    --disable-multilib --with-abi=lp64d --with-arch=rv64gcv
    --with-tune=rocket --with-isa-spec=20191213
    'CFLAGS_FOR_TARGET=-O2    -mcmodel=medlow'
    'CXXFLAGS_FOR_TARGET=-O2    -mcmodel=medlow'

    On 10/23/23 15:50, 钟居哲 wrote:
    I didn't reproduce it. How to enable RTL checking ?

    ------------------------------------------------------------------------
    juzhe.zh...@rivai.ai

        *From:* Patrick O'Neill <mailto:patr...@rivosinc.com>
        *Date:* 2023-10-24 06:46
        *To:* 钟居哲 <mailto:juzhe.zh...@rivai.ai>; 丁乐华
        <mailto:lehua.d...@rivai.ai>
        *CC:* kito.cheng <mailto:kito.ch...@gmail.com>; rdapp.gcc
        <mailto:rdapp....@gmail.com>; palmer
        <mailto:pal...@rivosinc.com>; Jeff Law
        <mailto:jeffreya...@gmail.com>; gcc-patches
        <mailto:gcc-patches@gcc.gnu.org>
        *Subject:* Re: [PATCH V3 00/11] Refactor and cleanup vsetvl pass

        You're on top of it - thanks for fixing this! I'll send the
        testcase.

        Unrelated to this failure, I'm seeing a build failure on
        glibc rv32/64gcv when RTL checking is enabled.
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111947

        Thanks,
        Patrick

        On 10/23/23 14:41, 钟居哲 wrote:
        I have fixed it:
        
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0c4bd1321a6def5eb44c530e83b01a415633b660

        Plz verify it and send a patch with testcase pr111941.c if
        you confirm it has been fixed on the trunk.

        Thanks.
        ------------------------------------------------------------------------
        juzhe.zh...@rivai.ai

            *From:* Patrick O'Neill <mailto:patr...@rivosinc.com>
            *Date:* 2023-10-24 02:30
            *To:* Lehua Ding <mailto:lehua.d...@rivai.ai>
            *CC:* kito.cheng <mailto:kito.ch...@gmail.com>;
            rdapp.gcc <mailto:rdapp....@gmail.com>; palmer
            <mailto:pal...@rivosinc.com>; Jeff Law
            <mailto:jeffreya...@gmail.com>; gcc-patches
            <mailto:gcc-patches@gcc.gnu.org>; 钟居哲
            <mailto:juzhe.zh...@rivai.ai>
            *Subject:* Re: [PATCH V3 00/11] Refactor and cleanup
            vsetvl pass
            Hi Lehua,
            This patch causes a build failure with newlib 4.1.0 with
            -march=rv64gv_zbb.
            I've creduced the failure here:
            https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111941
            Thanks,
            Patrick
            On 10/19/23 20:58, Lehua Ding wrote:
            > Committed, thanks Patrick and Juzhe.
            >
            > On 2023/10/20 2:04, Patrick O'Neill wrote:
            >> I tested it this morning on my machine and it passed!
            >>
            >> Tested against:
            >> 04d6c74564b7eb51660a00b35353aeab706b5a50
            >>
            >> Using targets:
            >> glibc rv32gcv qemu
            >> glibc rv64gcv qemu
            >>
            >> This patch series does not introduce any new failures.
            >>
            >> Here's a list of *resolved* failures by this patch
            series:
            >> rv64gcv:
            >> FAIL: gfortran.dg/host_assoc_function_7.f90   -O3
            >> -fomit-frame-pointer -funroll-loops -fpeel-loops
            -ftracer
            >> -finline-functions  execution test
            >> FAIL: gfortran.dg/host_assoc_function_7.f90   -O3 -g 
            execution test
            >>
            >> rv32gcv:
            >> FAIL:
            gcc.target/riscv/rvv/autovec/binop/narrow_run-1.c
            execution test
            >> FAIL: gfortran.dg/host_assoc_function_7.f90   -O3
            >> -fomit-frame-pointer -funroll-loops -fpeel-loops
            -ftracer
            >> -finline-functions  execution test
            >> FAIL: gfortran.dg/host_assoc_function_7.f90   -O3 -g 
            execution test
            >>
            >> Thanks for the quick revision Lehua!
            >>
            >> Tested-by: Patrick O'Neill <patr...@rivosinc.com>
            >>
            >> Patrick
            >>
            >> On 10/19/23 01:50, 钟居哲 wrote:
            >>> LGTM now. But wait for Patrick CI testing.
            >>>
            >>> Hi, @Patrick. Could you apply this patch and trigger
            CI in your
            >>> github  so that we can see the full running result.
            >>>
            >>> Issues · patrick-rivos/riscv-gnu-toolchain · GitHub
            >>>
            <https://github.com/patrick-rivos/riscv-gnu-toolchain/issues>
            >>>
            >>>
            
------------------------------------------------------------------------

            >>>
            >>> juzhe.zh...@rivai.ai
            >>>
            >>>     *From:* Lehua Ding <mailto:lehua.d...@rivai.ai>
            >>>     *Date:* 2023-10-19 16:33
            >>>     *To:* gcc-patches <mailto:gcc-patches@gcc.gnu.org>
            >>>     *CC:* juzhe.zhong <mailto:juzhe.zh...@rivai.ai>;
            kito.cheng
            >>> <mailto:kito.ch...@gmail.com>; rdapp.gcc
            >>> <mailto:rdapp....@gmail.com>; palmer
            <mailto:pal...@rivosinc.com>;
            >>>     jeffreyalaw <mailto:jeffreya...@gmail.com>;
            lehua.ding
            >>> <mailto:lehua.d...@rivai.ai>
            >>>     *Subject:* [PATCH V3 00/11] Refactor and cleanup
            vsetvl pass
            >>>     This patch refactors and cleanups the vsetvl
            pass in order to make
            >>>     the code
            >>>     easier to modify and understand. This patch does
            several things:
            >>>     1. Introducing a virtual CFG for vsetvl infos
            and Phase 1, 2 and 3
            >>>     only maintain
            >>>        and modify this virtual CFG. Phase 4 performs
            insertion,
            >>>     modification and
            >>>        deletion of vsetvl insns based on the virtual
            CFG. The Basic
            >>>     block in the
            >>>        virtual CFG is called vsetvl_block_info and
            the vsetvl
            >>>     information inside
            >>>        is called vsetvl_info.
            >>>     2. Combine Phase 1 and 2 into a single Phase 1
            and unified the
            >>>     demand system,
            >>>        this Phase only fuse local vsetvl info in
            forward direction.
            >>>     3. Refactor Phase 3, change the logic for
            determining whether to
            >>>     uplift vsetvl
            >>>        info to a pred basic block to a more unified
            method that there
            >>>     is a vsetvl
            >>>        info in the vsetvl defintion reaching in
            compatible with it.
            >>>     4. Place all modification operations to the RTL
            in Phase 4 and
            >>>     Phase 5.
            >>>        Phase 4 is responsible for inserting,
            modifying and deleting
            >>> vsetvl
            >>>        instructions based on fully optimized vsetvl
            infos. Phase 5
            >>>     removes the avl
            >>>        operand from the RVV instruction and removes
            the unused dest
            >>>     operand
            >>>        register from the vsetvl insns.
            >>>     These modifications resulted in some testcases
            needing to be
            >>>     updated. The reasons
            >>>     for updating are summarized below:
            >>>     1. more optimized
            >>>
            vlmax_back_prop-25.c/vlmax_back_prop-26.c/vlmax_conflict-3.c/
            >>> vlmax_conflict-12.c/vsetvl-13.c/vsetvl-23.c/
            >>>
            avl_single-23.c/avl_single-89.c/avl_single-95.c/pr109773-1.c
            >>>     2. less unnecessary fusion
            >>> avl_single-46.c/imm_bb_prop-1.c/pr109743-2.c/vsetvl-18.c
            >>>     3. local fuse direction (backward -> forward)
            >>>        scalar_move-1.c/
            >>>     4. add some bugfix testcases.
            >>> pr111037-3.c/pr111037-4.c
            >>>        avl_single-89.c
            >>>     PR target/111037
            >>>     PR target/111234
            >>>     PR target/111725
            >>>     Lehua Ding (11):
            >>>       RISC-V: P1: Refactor
            >>>
            avl_info/vl_vtype_info/vector_insn_info/vector_block_info
            >>>       RISC-V: P2: Refactor and cleanup demand system
            >>>       RISC-V: P3: Refactor vector_infos_manager
            >>>       RISC-V: P4: move method from pass_vsetvl to
            pre_vsetvl
            >>>       RISC-V: P5: combine phase 1 and 2
            >>>       RISC-V: P6: Add computing reaching definition
            data flow
            >>>       RISC-V: P7: Move earliest fuse and lcm code to
            pre_vsetvl class
            >>>       RISC-V: P8: Refactor emit-vsetvl phase and
            delete post
            >>> optimization
            >>>       RISC-V: P9: Cleanup and reorganize helper
            functions
            >>>       RISC-V: P10: Delete riscv-vsetvl.h and adjust
            riscv-vsetvl.def
            >>>       RISC-V: P11: Adjust and add testcases
            >>> gcc/config/riscv/riscv-vsetvl.cc | 6502
            >>> +++++++----------
            >>> gcc/config/riscv/riscv-vsetvl.def |  641 +-
            >>> gcc/config/riscv/riscv-vsetvl.h |  488 --
            >>> gcc/config/riscv/t-riscv |    2 +-
            >>> .../gcc.target/riscv/rvv/base/scalar_move-1.c |    2 +-
            >>> .../riscv/rvv/vsetvl/avl_single-104.c |   35 +
            >>> .../riscv/rvv/vsetvl/avl_single-105.c |   23 +
            >>> .../riscv/rvv/vsetvl/avl_single-106.c |   34 +
            >>> .../riscv/rvv/vsetvl/avl_single-107.c |   41 +
            >>> .../riscv/rvv/vsetvl/avl_single-108.c |   41 +
            >>> .../riscv/rvv/vsetvl/avl_single-109.c |   45 +
            >>> .../riscv/rvv/vsetvl/avl_single-23.c |    7 +-
            >>> .../riscv/rvv/vsetvl/avl_single-46.c |    3 +-
            >>> .../riscv/rvv/vsetvl/avl_single-84.c |    5 +-
            >>> .../riscv/rvv/vsetvl/avl_single-89.c |    8 +-
            >>> .../riscv/rvv/vsetvl/avl_single-95.c |    2 +-
            >>> .../riscv/rvv/vsetvl/imm_bb_prop-1.c |    7 +-
            >>> .../gcc.target/riscv/rvv/vsetvl/pr109743-2.c |    2 +-
            >>> .../gcc.target/riscv/rvv/vsetvl/pr109773-1.c |    2 +-
            >>>     .../riscv/rvv/{base => vsetvl}/pr111037-1.c   |    0
            >>>     .../riscv/rvv/{base => vsetvl}/pr111037-2.c   |    0
            >>> .../gcc.target/riscv/rvv/vsetvl/pr111037-3.c |   16 +
            >>> .../gcc.target/riscv/rvv/vsetvl/pr111037-4.c |   16 +
            >>> .../riscv/rvv/vsetvl/vlmax_back_prop-25.c |   10 +-
            >>> .../riscv/rvv/vsetvl/vlmax_back_prop-26.c |   10 +-
            >>> .../riscv/rvv/vsetvl/vlmax_conflict-12.c |    1 -
            >>> .../riscv/rvv/vsetvl/vlmax_conflict-3.c |    2 +-
            >>> .../gcc.target/riscv/rvv/vsetvl/vsetvl-13.c |    4 +-
            >>> .../gcc.target/riscv/rvv/vsetvl/vsetvl-18.c |    4 +-
            >>> .../gcc.target/riscv/rvv/vsetvl/vsetvl-23.c |    2 +-
            >>>     30 files changed, 3263 insertions(+), 4692
            deletions(-)
            >>>     delete mode 100644 gcc/config/riscv/riscv-vsetvl.h
            >>>     create mode 100644
            >>>
            gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-104.c
            >>>     create mode 100644
            >>>
            gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-105.c
            >>>     create mode 100644
            >>>
            gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-106.c
            >>>     create mode 100644
            >>>
            gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-107.c
            >>>     create mode 100644
            >>>
            gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-108.c
            >>>     create mode 100644
            >>>
            gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-109.c
            >>>     rename gcc/testsuite/gcc.target/riscv/rvv/{base =>
            >>>     vsetvl}/pr111037-1.c (100%)
            >>>     rename gcc/testsuite/gcc.target/riscv/rvv/{base =>
            >>>     vsetvl}/pr111037-2.c (100%)
            >>>     create mode 100644
            >>> gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-3.c
            >>>     create mode 100644
            >>> gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-4.c
            >>>     --     2.36.3
            >>>
            >

Reply via email to