From patchwork Sun Mar 5 10:24:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "juzhe.zhong@rivai.ai" X-Patchwork-Id: 64284 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1313936wrd; Sun, 5 Mar 2023 02:25:07 -0800 (PST) X-Google-Smtp-Source: AK7set9MWDSZxor2XRNvWksan184WyumLvdde8xHB4lBgTsjxJ6Ftdm2PJUi+egxsFNb82oQD5bc X-Received: by 2002:a17:907:c68a:b0:8de:acd1:90f6 with SMTP id ue10-20020a170907c68a00b008deacd190f6mr8565868ejc.4.1678011907537; Sun, 05 Mar 2023 02:25:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678011907; cv=none; d=google.com; s=arc-20160816; b=TSYIIh2jtCD/3qQlpY2mWKrj2fIhz+Maj1zHOU7gGg94F5diPfrHx/MDZwRjX3i8ka CjsXdLRlrgyUYSAINZHhbsL01S2mwkXMP3aDV6d6p5H+16dlQGam2fKA8tZQ1VgQ3rwF APEAk1KbIOra3fZOi6KD8PU8v/QLWcnLe/mtP8ddYcG4qj5nJ84Z9uULOD/iidJ0MQzp DGB9UAYw5dNEouIWnzi7MC8xDM+nOuaAQgj200Y+UPMxFTX681d8A+T+kB+37F7mTb/2 e7ZmFvOjHM2lUqy2Fg/izpO6HXaxZMgD+GN+OADKEUJvuQ+LgzPF45Pok4WFVC7Gn9O5 MRGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dmarc-filter:delivered-to; bh=nBd6TaX4PqAUGQQvKiYrS1owUMDnpipf1K3d0RtVFUs=; b=SdGGjNY0fvBmJnaz8cIEgeKBxjTwaeGMyZZ+o9mLV6H6VH9jMmzIIVq0QrpfA2/t+1 xhLtin9XoANV/34fGnfUTCyExbdnuQbj5bY3WbHs8C5eAzUNHq53NiaP/csSHV/8kxqL QHOK5/I3QrXRAQdtmgOd8Wb4VElciTdBz6uGGJccCejhZ8IAIJ+3hS/1efeaPm3nxwuQ CRk/2dagiBxmUW7zQDZK0qjtD8M70KOUuP+OZQBv1AjP6ittbgeUMzF824LK5/+mqbOf 3dBYm4PHJi1vbZ+xK9ydgvh1cmtjsNaIx+HousPrxxuBy5SFPuomaFAI8RBv0lQNRXVI Z1KA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id a2-20020a170906468200b008d0200684f2si7204165ejr.889.2023.03.05.02.25.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Mar 2023 02:25:07 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2FA643858417 for ; Sun, 5 Mar 2023 10:25:04 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193]) by sourceware.org (Postfix) with ESMTPS id 868523858D1E for ; Sun, 5 Mar 2023 10:24:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 868523858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp91t1678011872tmrgu5z2 Received: from rios-cad5.localdomain ( [58.60.1.11]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 05 Mar 2023 18:24:31 +0800 (CST) X-QQ-SSF: 01400000002000E0M000B00A0000000 X-QQ-FEAT: mRz6/7wsmIjJmQCLClJQRJN5uWLSK0QwRXYsJHbnnCHbPERP4C/l9bUO66FAt GMU72Hnuz/f0WFpEIYgi91AH/Nlh+z7PrlAl6zbturtYRWLaE20125nccdVLfLZZuwsQG9K N0+SfaPu8zSmS8ekMOVlXXEjKLoNiVqcIscYqd2F5LV+jtWonjuE1w3xDyquqIppxuVdW7J Q9vww4q5eGWfzQAy2gLjzSCq1iRqsjdJ72iVkJfuoqqie9s6cNZx4zRQmZeyvMNEhPW4auI JS/gQ6XgMRmgvHyctFrTye+cHhNH+ecTHmKAq8ZPHkFH5c9lqgg86Iw1LCZiyXyc8iXfwl8 WnYuHN3htLsbfRS0cAKoccMhNIqOFPPu1kRrR933bF57H6c8xz+nPPoXlCdZw== X-QQ-GoodBg: 2 From: juzhe.zhong@rivai.ai To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, Ju-Zhe Zhong Subject: [PATCH] RISC-V: Fix ICE for avl_single-86/avl_single-88/avl_single-90 Date: Sun, 5 Mar 2023 18:24:30 +0800 Message-Id: <20230305102430.266375-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759523013724112800?= X-GMAIL-MSGID: =?utf-8?q?1759523013724112800?= From: Ju-Zhe Zhong FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-86.c -Og -g (internal compiler error: Segmentation fault) FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-86.c -Og -g (test for excess errors) FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-88.c -Og -g (internal compiler error: Segmentation fault) FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-88.c -Og -g (test for excess errors) FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-90.c -Og -g (internal compiler error: Segmentation fault) FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-90.c -Og -g (test for excess errors) gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug. (pass_vsetvl::backward_demand_fusion): Ditto. --- gcc/config/riscv/riscv-vsetvl.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index 9e25102a4f2..73f36a70331 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -1528,7 +1528,7 @@ static bool reg_available_p (const bb_info *bb, const vector_insn_info &info) { if (!info.get_avl_source ()) - return true; + return false; insn_info *insn = info.get_avl_source ()->insn (); if (insn->bb () == bb) return before_p (insn, info.get_insn ()); @@ -3040,6 +3040,12 @@ pass_vsetvl::backward_demand_fusion (void) continue; if (e->src->index == ENTRY_BLOCK_PTR_FOR_FN (cfun)->index) continue; + /* If prop is demand of vsetvl instruction and reaching doesn't demand + AVL. We don't backward propagate since vsetvl instruction has no + side effects. */ + if (vsetvl_insn_p (prop.get_insn ()->rtl ()) + && propagate_avl_across_demands_p (prop, block_info.reaching_out)) + continue; if (block_info.reaching_out.unknown_p ()) continue;