From patchwork Thu Jan 25 08:24:26 2024 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: 191901 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1495083dyi; Thu, 25 Jan 2024 00:26:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IGSwBvvWv2ypFWqV3FPklYOEhhLBGDSPhCUdwtod9dDhpVDRFUe/AsREkV4N6bLFQMkiSPF X-Received: by 2002:a05:620a:3705:b0:783:8e25:735 with SMTP id de5-20020a05620a370500b007838e250735mr753104qkb.155.1706171194762; Thu, 25 Jan 2024 00:26:34 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706171194; cv=pass; d=google.com; s=arc-20160816; b=cQ68TUlzfpGiuXi8MJlSH4uIq69CGIJwtZGJ2BcMCUhgnQQFsLH8cQ9+57yN/scNIj BAxgQ/c+dXopBTASX6Txhjkv/b7pWlzxgjeBWcycPjgOmKgwOcOCWw+fNwSPfEZ4WfpO F6zaIeZVPofV1q7liYa+IHyMa+MuDtLc3q3FqIL0OsDOvhEIljde9ju2YgkiTktcqo4L +H9PJeFd0rwkO70Zp6YEiF/2NISb6amAm7vtOWH5xgrApQf8xWN8e9cRPwMbFqXbVCCl ZNr5heZuvaJoWp8kkIJk0u6kB6G1gH2ditR2WM4d9YtPknMZARfIADQ2cHzTRNOHoQKd GcNg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=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:arc-filter:dmarc-filter:delivered-to; bh=wa5CqLSitKiOCpOFhVB3ET2jIkujTsN/n2OcBIeufEU=; fh=idvV5TQ1gmHAoU8u1GUGfjilVySOK+BR5TeZLoSouN8=; b=BiY0LactqVMUCKJVTw8cY1gskrhPp5E1W8HYkRE/2Zn/0h4qBhy0D5TUtBlVhDK7li X/9duyImkVpCExONdUOJUFZRgdH6mPbv8cahvphYemBrBUZhK4MLzigAPHJF4uY04c2P fuBnnYBHy2aGemu3d7u7ipg+CkM0KhOqvUZtE4HSoWqdaRjnvAkMSAjZI+3LhW85PtmO 5bNpmZFT9F4l7kmOGru+SfTTguyrN48GXut5ZV/yxMyvWdufzMIo/MEXMSLL2zlDonSW eL9O16ib9Tw8YOoAiAk0nwOWkaeiFLhpCu4L6BLG0SSpscPGnuMDdYipNDuWMpdk5wSC 3Qyw== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); 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 (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h8-20020a05620a284800b0078322b61e8csi13311530qkp.465.2024.01.25.00.26.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jan 2024 00:26:34 -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; arc=pass (i=1); 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 757A83858414 for ; Thu, 25 Jan 2024 08:26:34 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbgau2.qq.com (smtpbgau2.qq.com [54.206.34.216]) by sourceware.org (Postfix) with ESMTPS id E21FF3858C2C for ; Thu, 25 Jan 2024 08:24:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E21FF3858C2C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E21FF3858C2C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.206.34.216 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706171081; cv=none; b=ceS6BLS8AjeCx/cyxwM5mMt5Km0tXVL5jma3UIW7i+KBKeswZ6eKVGMVl+d2kwh4d9pee2RwUwashIb2N78VPmbRGVZRaVEeYeUaCIqFgBbxTFRaaFmfYAxuaiSeHcRoyvD1eqlfNZr6TxRExFbew9Gn0htNBUjxNJlbfMa3k10= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706171081; c=relaxed/simple; bh=VQQiI7n5u7Q23bvhShLAI/vZDG/TSF4XA8wimBaXTfk=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=uac/xQ2Owa6Dw+Acsj6YXn7h89owmGd/51TQLQWM8FXA5seIPZ4GfKvJGJv7YahZm3V6wqOkIjKA696ol9X9b1ey2cmP05g2RrbbTdovc4xNQ3Qa6PE7056zXRyjVTJY6aU6d/LADlWv4Itu7VKmVnHotlkh7DTt172gvWk3nEs= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp71t1706171071t633noq1 X-QQ-Originating-IP: wAp7AFxKr7iQbdzxl8+RA9db2wHENRIpzXokgGx+VGk= Received: from rios-cad121.hadoop.rioslab.org ( [58.60.1.9]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 25 Jan 2024 16:24:29 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: MaXdPbTEFobuE1AR/fF+8xaZNo5I+2t2B43LfYXWoUeFH6nt8eWWn0mbFR4dX rapT0MFHgsOyJR2DRdU/C9GtsK7XjY4N07YK1bbmMrIkrVLfUnVQVKCQ2SZvVNlqLEDs00L MdKp2SB3ovmG/Mov1hd1hoQwcWa02p/KOypjfeCEqFgvYGjwCr2wS1SuATmQZpWsogTzWpL Mau9EYIY1GwoR/DbxaFMn1OjIgkI87VGgLNH9X+dmi+KdT+zRPKa48bVnj8brEN9+1a9Y3V JDDzcVrL60klgPh8BL+8Ya5hyed4ZfVxSXpPP7EYKHNqqQcDbsfqmqKcivzKTdINbnEjG/8 VJCj9Eori2j+0m9cdHvoDrRG6SZVeZKwT1zcjqe/+7Vg7Kn9O3Ybn36G/Wi341XLFRmsoOd NQnSuCW0iJI= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 16820306231695754530 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Cc: Juzhe-Zhong Subject: [Committed] RISC-V: Remove redundant full available computation [NFC] Date: Thu, 25 Jan 2024 16:24:26 +0800 Message-Id: <20240125082426.2916597-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:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.30 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789050166623864843 X-GMAIL-MSGID: 1789050166623864843 Notice full available is computed evey round of earliest fusion which is redundant. Actually we only need to compute it once in phase 3. It's NFC patch and tested no regression. Committed. gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove redundant full available computation. (pre_vsetvl::pre_global_vsetvl_info): Ditto. --- gcc/config/riscv/riscv-vsetvl.cc | 57 +++++++++++++------------------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index 53d954e1dff..72c5a127d9e 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -1256,9 +1256,7 @@ public: vsetvl_info global_info; bb_info *bb; - bool full_available; - - vsetvl_block_info () : bb (nullptr), full_available (false) + vsetvl_block_info () : bb (nullptr) { local_infos.safe_grow_cleared (0); global_info.set_empty (); @@ -2489,34 +2487,6 @@ pre_vsetvl::compute_vsetvl_def_data () } } - for (const bb_info *bb : crtl->ssa->bbs ()) - { - vsetvl_block_info &block_info = get_block_info (bb); - if (block_info.empty_p ()) - continue; - vsetvl_info &curr_info = block_info.get_entry_info (); - if (!curr_info.valid_p ()) - continue; - - unsigned int expr_index; - sbitmap_iterator sbi; - gcc_assert ( - !bitmap_empty_p (m_vsetvl_def_in[curr_info.get_bb ()->index ()])); - bool full_available = true; - EXECUTE_IF_SET_IN_BITMAP (m_vsetvl_def_in[bb->index ()], 0, expr_index, - sbi) - { - vsetvl_info &prev_info = *m_vsetvl_def_exprs[expr_index]; - if (!prev_info.valid_p () - || !m_dem.available_p (prev_info, curr_info)) - { - full_available = false; - break; - } - } - block_info.full_available = full_available; - } - sbitmap_vector_free (def_loc); sbitmap_vector_free (m_kill); } @@ -3178,11 +3148,30 @@ pre_vsetvl::pre_global_vsetvl_info () for (const bb_info *bb : crtl->ssa->bbs ()) { vsetvl_block_info &block_info = get_block_info (bb); - if (block_info.empty_p () || !block_info.full_available) + if (block_info.empty_p ()) + continue; + vsetvl_info &curr_info = block_info.get_entry_info (); + if (!curr_info.valid_p ()) continue; - vsetvl_info &info = block_info.get_entry_info (); - info.set_delete (); + unsigned int expr_index; + sbitmap_iterator sbi; + gcc_assert ( + !bitmap_empty_p (m_vsetvl_def_in[curr_info.get_bb ()->index ()])); + bool full_available = true; + EXECUTE_IF_SET_IN_BITMAP (m_vsetvl_def_in[bb->index ()], 0, expr_index, + sbi) + { + vsetvl_info &prev_info = *m_vsetvl_def_exprs[expr_index]; + if (!prev_info.valid_p () + || !m_dem.available_p (prev_info, curr_info)) + { + full_available = false; + break; + } + } + if (full_available) + curr_info.set_delete (); } for (const bb_info *bb : crtl->ssa->bbs ())