From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) by sourceware.org (Postfix) with ESMTPS id E5F9E3858D39 for ; Mon, 23 Oct 2023 18:30:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E5F9E3858D39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E5F9E3858D39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::735 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698085850; cv=none; b=xyXzpU2XhAMdzGLZtd5QesYnUAAB7OjA5sfNUR8H0BNHvRJqMF427kHBP4fUZZ/SAcnQKazJdnS6x5f+DucMRlky3z6I74ScqR3GLybw4D8hzk5qXyuvO5jb8Qy7zZpJH0PJKtEw9pjX+ZMTiyZgZFf+QnXSlUJ5Fc4jq2dSrKY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698085850; c=relaxed/simple; bh=3jeWamFR9NRpRgPUYSLR31NTXxSq/bfJwWtQaIVbQXQ=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=i/nRmKa/xrrgXqCabo6X9rcNDZMfWSpWo/IRY/lRxEyIWvGr+amH6s37HDK5cMfhw7odJq1ob7S0nx2Fa3z33LTce+iI4zTG5KpaUquP3LEUgm5tuNIXaRmE0MDNOo245/rrIvS/hMB3BETe2vdom4qw9e9IaDKz77h7IzoN7Vs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-qk1-x735.google.com with SMTP id af79cd13be357-777745f1541so284698285a.0 for ; Mon, 23 Oct 2023 11:30:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1698085847; x=1698690647; darn=gcc.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=kI7FoKBbQLFglO2OLwK//m0x/6nzeKm/crD76EdR+Ow=; b=O2HvbujxN4sjEiU0qXleJT5n7A7hTsDzFO18LdT/Kvj97bDqNMYAMrwZ9LVMaJrn4P CBYVuAEwH87G9kZnbJgKe6NtChA9hG1yUgBfnSizXDCgJpsxEzt1lYP5nJ9og+DUaudh EH40hkStJNoLrqYdycpJmMT5x88xV56xvipy/vB4g5gh7yoTa2VHDNMzlVchIRO0OcD/ /TOV3lOmHnlbkLYFrb2U4urJkpH7xLxWb80xN3NYUIvh6FLfJGMCaJTqets5jrF1EmHi oYD8dTFdnwFD/bNeQ2ETr6/zZoqlc1fUFEPCOpZgjoGSMlu7JHQl9eNODYMyyHldR77N mJBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698085847; x=1698690647; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kI7FoKBbQLFglO2OLwK//m0x/6nzeKm/crD76EdR+Ow=; b=OPqp3GjIvziIhV78xCQiqMsp+qGbFg9lavQHI18ORwDWVBuzgUc7597yFSx46It2h/ 45+79h+CDDrsIQarQJmPu3C7o7y+63Bp+cbyxEAzldb5pROmdeTZjNirVXYXeJ/Rp0vc Hyy7OA/BFSQa/Y5jjMSbP04k3xt3iHywa/XK6MO8Di3xubXA93WNeAeXfw5leL4kHudV Wl3U3W9lxMPbD/kLeBpfRbRc2X9F0osV76FJM0wAL/b7XpGCkUQm+rE9UvJyyg99gO/4 Hri/HG3fU8HywIIPofUL9z5LuPKVzADWd398Ml8mL+EGo8+bf4ylFHPNqaGCYlo6ApGN bgQw== X-Gm-Message-State: AOJu0YzhHdtBg8gJbJHc7PAPve9OC3gEiLUlZ5d9QP259PYooLbwLuUl 21iafoS4rzoHhQ6kMuNoSnKA/Q== X-Google-Smtp-Source: AGHT+IG+DaOLHxftaGLbrTjUN0yrnbI/8zcEk4Czgnz6GJMi/GmYkRc3Czi5vaBBZ5VyV9F7ZSCoGw== X-Received: by 2002:a05:620a:2584:b0:779:dc90:ba1d with SMTP id x4-20020a05620a258400b00779dc90ba1dmr3272997qko.14.1698085847149; Mon, 23 Oct 2023 11:30:47 -0700 (PDT) Received: from [10.0.17.156] ([208.116.208.98]) by smtp.gmail.com with ESMTPSA id l24-20020a05620a211800b007757868e75csm2885629qkl.117.2023.10.23.11.30.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Oct 2023 11:30:45 -0700 (PDT) Message-ID: Date: Mon, 23 Oct 2023 11:30:40 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH V3 00/11] Refactor and cleanup vsetvl pass To: Lehua Ding Cc: "kito.cheng" , "rdapp.gcc" , palmer , Jeff Law , gcc-patches , =?UTF-8?B?6ZKf5bGF5ZOy?= References: <20231019083333.2052340-1-lehua.ding@rivai.ai> <17037AC761126CB1+2023101916505449794275@rivai.ai> <010dab03-b995-be03-8a73-241d7595452d@rivosinc.com> Content-Language: en-US From: Patrick O'Neill In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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 >> >> 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 >>> >>> >>> ------------------------------------------------------------------------ >>> >>> juzhe.zhong@rivai.ai >>> >>>     *From:* Lehua Ding >>>     *Date:* 2023-10-19 16:33 >>>     *To:* gcc-patches >>>     *CC:* juzhe.zhong ; kito.cheng >>>     ; rdapp.gcc >>>     ; palmer ; >>>     jeffreyalaw ; lehua.ding >>>     >>>     *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 >>> >