From patchwork Mon Sep 11 03:33:59 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: 137872 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1854207vqo; Sun, 10 Sep 2023 20:34:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGdAEZPeKNUtb9bjfoPrvAgdPFx/YNTm63PgTlEdZvgwoI/gbgKqlqedo88xeYzc3cOpxfR X-Received: by 2002:a19:7706:0:b0:4f9:7aee:8dc5 with SMTP id s6-20020a197706000000b004f97aee8dc5mr5478923lfc.19.1694403276973; Sun, 10 Sep 2023 20:34:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694403276; cv=none; d=google.com; s=arc-20160816; b=cz/um0cVySZnXik2DcJGEFy2qrtln5GU0M9/p3rWtHbSHWYyeiwsMmtWBUwf7Kj3Du qnF4qv6q4fe0Px8j7csimSG3jWDpyPVAkyUAMK0zrrFj5z+TM47Cj/UFHHv6F2qKraPV 0ZPD1/oRS6hwVCIZrdOSiwY9uHAIJZgwlmji1cW5y3dtCXqDrAbAaA2mp4BuaKxOY1Av UJceQYdXC1Q1QczBw4rOserjp0ynC88OePywa12nuMWXAWZVCP4o3Mo5siCxRujNC2ET YwvXWr38y0QRkASV65QCj96ga/H2rYPhyvhqDuguDwrd6dBlwX1YSLXkbh/zkm/OguWx E+Vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id :content-transfer-encoding:mime-version:message-id:date:subject:to :from:dmarc-filter:delivered-to; bh=e7z16mfOXA/f3DLuhPsel2vbsar2BJEHxIdTm00K/Ow=; fh=arl273cIQBNH1P6XLxHQvF0scgitfd773vOV+bwQx3o=; b=MHmmSMU59E9Dj/LItohjkQ7s3zqYIaBIgYVzOSG2gJ64rK13gebaaU3phrPL40pIY7 7TODn3s4EwBFvODYEkAKU+l4D5+j0QU4xpx3i6mcB1VhHQkSaQNZHtMbYSol9L+Eacl1 MbWz0cj3l22zyqS98rqlnmIwBMRnaJRwXZj2Pb2ek6HJ9+bLsShYu13bgWUiOytITqyh tiSMqMcruk5uQICTWUyEWwlkOaDTmQUDahjwNYR5rqu3uuMc497UlXXPtTv8xppFC9k5 DphoQpdTwDfZlSq0KC8LtgA/FZPk+U5hd7J/erMajRSPThq8StUqDI53QPRHkwLkhsGj VCCg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id p13-20020aa7d30d000000b0052a48a85a1bsi5896971edq.567.2023.09.10.20.34.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Sep 2023 20:34:36 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 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 2A7C6385841F for ; Mon, 11 Sep 2023 03:34:33 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbguseast2.qq.com (smtpbguseast2.qq.com [54.204.34.130]) by sourceware.org (Postfix) with ESMTPS id 284383858D37 for ; Mon, 11 Sep 2023 03:34:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 284383858D37 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: bizesmtp65t1694403242t1lcdsey Received: from rios-cad122.hadoop.rioslab.org ( [58.60.1.26]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 11 Sep 2023 11:34:00 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: wF64VgvUy+XPbV65u8rQCU/HvWzoZ+m+hcVzW1LTMAbVnfLCx4aSb2yDQ2UKX ronDUcesB3LFP19eL9KAtb4ef3y0sx4nb1czDYX1qzlhgBvjWaPXXyjIjrh/FODPHHbmK/Z y8UAFCocCptGyKbhzo+rgoIGi5/gnQbQaBObtwPnO5JzZenr3y/GMmKbiLTWaIleaU0ACjj N5XqxWc4kiOBhD5Vt/GqG2IV13tYUtDzFKfX8ATAZ6VEqlV9yl5ZST9IRDuuMSAgn+ZLYWu lNROoA1hXJEyGtFTuR4Fvo8ia0O++Dfc87lM8b4VsObb43WhyyD7cJVy/C/4EX6Lc9GQ+jj bQStJVJGBYz4ZMvcTS36W5FwSGmNGR+0NUTiv/TNw4YOASq22a3oNecfUdgM6kqdyEZAP24 PPH+rSGda+s= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 1572697230446191305 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Subject: [PATCH] RISC-V: Use dominance analysis in global vsetvl elimination Date: Mon, 11 Sep 2023 11:33:59 +0800 Message-Id: <20230911033359.2484029-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=-10.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kito.cheng@sifive.com, kito.cheng@gmail.com, Juzhe-Zhong Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776710610697061296 X-GMAIL-MSGID: 1776710610697061296 I found that it's more reasonable to use existing dominance analysis. gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn): Use dominance analysis. (pass_vsetvl::init): Ditto. (pass_vsetvl::done): Ditto. --- gcc/config/riscv/riscv-vsetvl.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index 134b97737ae..f81361c4ccd 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -4054,7 +4054,7 @@ pass_vsetvl::global_eliminate_vsetvl_insn (const bb_info *bb) const } /* Step1: Reshape the VL/VTYPE status to make sure everything compatible. */ - hash_set pred_cfg_bbs = get_all_predecessors (cfg_bb); + auto_vec pred_cfg_bbs = get_dominated_by (CDI_POST_DOMINATORS, cfg_bb); FOR_EACH_EDGE (e, ei, cfg_bb->preds) { sbitmap avout = m_vector_manager->vector_avout[e->src->index]; @@ -4243,6 +4243,7 @@ pass_vsetvl::init (void) { /* Initialization of RTL_SSA. */ calculate_dominance_info (CDI_DOMINATORS); + calculate_dominance_info (CDI_POST_DOMINATORS); df_analyze (); crtl->ssa = new function_info (cfun); } @@ -4264,6 +4265,7 @@ pass_vsetvl::done (void) { /* Finalization of RTL_SSA. */ free_dominance_info (CDI_DOMINATORS); + free_dominance_info (CDI_POST_DOMINATORS); if (crtl->ssa->perform_pending_updates ()) cleanup_cfg (0); delete crtl->ssa;