From patchwork Wed May 24 17:54:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Sayle X-Patchwork-Id: 98639 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp82169vqr; Wed, 24 May 2023 10:54:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4XHf4670nF+hph2WaLr0+RA9aNYlNnWyfXuXTqb81z5GZyigFACZv0GuHSSO0AYYPvN2h9 X-Received: by 2002:aa7:dd10:0:b0:510:a5a1:b36d with SMTP id i16-20020aa7dd10000000b00510a5a1b36dmr2732498edv.33.1684950888634; Wed, 24 May 2023 10:54:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684950888; cv=none; d=google.com; s=arc-20160816; b=R3ppsyP3iBujMevTbi6bFnrVUnzZcggLhRwDvsYBWbEO1M0DqMt468u5ElvKhz0C8V rLDGjMvJbaVIWPEilK9hpMwLKCnz+edSHc/SwzaiNqI9SsHVqdiAwIFNQ68B7fi9wzpn Y1jWVXgzfpFLTb2X/1acQP/mcbdUjdwObgXbJXx9FZniRs/zh75YC27L+LaZSmv575hn uMNz1LBthZjIajlzX1trJMVVpHDOiCAYBSIQV2Mc3W9AZDaT3ybgUknJloQwrdw3UTFf Hj9zrvKB8jjv7QQErYrG3gywYNu3kGjqJas1n6ibVJXnvFmg8rDLG9k2Az6xv4jUyW7o OS8g== 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:content-language:thread-index :mime-version:message-id:date:subject:cc:to:from:dkim-signature :dmarc-filter:delivered-to; bh=cBQthX7xwOkLnb8GvWG9vcyG8hJQU1n45CGwWnnQ2BA=; b=jWGUWy3XYM00ymnUNMc0uqmQsTn/m3Pfbt8A6A+V/zC5r0AftfVO2fKkTXi39kfaY9 jI67UXNYiXV0m3LcgJ9wmzC4ODa5iAy7nddgGmA3kRtHbhvhv+pmhcNSL++Ao5gpDXdG RyQfi0T8AAx1e5DrCjnLK7MrH0vEJiepcnNDdwE6Hhpw9lH/nx4lMJFBuC+ti1dE48gB Ci+dVazqqv1o+CfOTS8KsPmH8HtmCsKj58aIyAXdwCioAv7Qp8Kvyrv8HaBt6nrKM/RD 1GR+9Z97lRsTC0EwOYbZE8uqx+Lt8ukrnmEImqW2b5MT7FQKO7WPzLZ41Z2JoSjcNRAf WNHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@nextmovesoftware.com header.s=default header.b=QsqtbKtY; 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 z20-20020aa7c654000000b00514046149f2si207514edr.434.2023.05.24.10.54.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 May 2023 10:54:48 -0700 (PDT) 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; dkim=fail header.i=@nextmovesoftware.com header.s=default header.b=QsqtbKtY; 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 3393C3857034 for ; Wed, 24 May 2023 17:54:36 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from server.nextmovesoftware.com (server.nextmovesoftware.com [162.254.253.69]) by sourceware.org (Postfix) with ESMTPS id EE0A73858D39 for ; Wed, 24 May 2023 17:54:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EE0A73858D39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=nextmovesoftware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=nextmovesoftware.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=nextmovesoftware.com; s=default; h=Content-Type:MIME-Version:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=cBQthX7xwOkLnb8GvWG9vcyG8hJQU1n45CGwWnnQ2BA=; b=QsqtbKtYa86I8brFzh6eiOeV1O 1L84cADxHcBKxhwPsGxkR/hAQyeDKSZg1q4ZRzuRCVncbmTFcuaRLiZBhzo/eQaTpp4uvaeoDey+Q LOfqC/nC+IweY6hefK7C8Xg4H1WGI3NfoqRKxNj7Hwi58uVfnMeikHoHcW7iBgtOtaw/llokiUiAK KlNGxrjuvyx5KJPZHLous7SMYcu0GV89pboJfylQbDu9hSU2Iph9LdRk/OVjJh6JiGXefBN8OZPAJ GEAwlRrDQeCFagCtgOXPX6GLWNFoJys29DoLYJMkDn0FG9jSJdJXRVem16/UsVRprVHMPsiXCQ/lU sU+DkSHw==; Received: from host86-169-41-81.range86-169.btcentralplus.com ([86.169.41.81]:65281 helo=Dell) by server.nextmovesoftware.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1q1sga-0001mv-14; Wed, 24 May 2023 13:54:08 -0400 From: "Roger Sayle" To: Cc: "'Uros Bizjak'" Subject: [i386 PATCH] A minor code clean-up: Use NULL_RTX instead of nullptr Date: Wed, 24 May 2023 18:54:06 +0100 Message-ID: <07ac01d98e68$bced1fa0$36c75ee0$@nextmovesoftware.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdmOZ5IA5NnLEoxlTAWIlDP/bqJ+Aw== Content-Language: en-gb X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server.nextmovesoftware.com X-AntiAbuse: Original Domain - gcc.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - nextmovesoftware.com X-Get-Message-Sender-Via: server.nextmovesoftware.com: authenticated_id: roger@nextmovesoftware.com X-Authenticated-Sender: server.nextmovesoftware.com: roger@nextmovesoftware.com X-Source: X-Source-Args: X-Source-Dir: X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_BARRACUDACENTRAL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, URIBL_BLACK 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?1766799063086798255?= X-GMAIL-MSGID: =?utf-8?q?1766799063086798255?= My understanding is that GCC's preferred null value for rtx is NULL_RTX (and for tree is NULL_TREE), and by being typed allows strict type checking, and use with function polymorphism and template instantiation. C++'s nullptr is preferred over NULL and 0 for pointer types that don't have a defined null of the correct type. This minor clean-up uses NULL_RTX consistently in i386-expand.cc. This patch has been tested on x86_64-pc-linux-gnu with make bootstrap and make -k check, both with and without --target_board=unix{-m32} with no new failures. Ok for mainline? Is my understanding correct? 2023-05-24 Roger Sayle gcc/ChangeLog * config/i386/i386.cc (ix86_convert_wide_int_to_broadcast): Use NULL_RTX instead of nullptr. (ix86_convert_const_wide_int_to_broadcast): Likewise. (ix86_broadcast_from_constant): Likewise. (ix86_expand_vector_move): Likewise. (ix86_extract_perm_from_pool_constant): Likewise. Thanks, Roger diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index 634fe61..a867288 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -296,7 +296,7 @@ ix86_convert_const_wide_int_to_broadcast (machine_mode mode, rtx op) /* Don't use integer vector broadcast if we can't move from GPR to SSE register directly. */ if (!TARGET_INTER_UNIT_MOVES_TO_VEC) - return nullptr; + return NULL_RTX; /* Convert CONST_WIDE_INT to a non-standard SSE constant integer broadcast only if vector broadcast is available. */ @@ -305,7 +305,7 @@ ix86_convert_const_wide_int_to_broadcast (machine_mode mode, rtx op) || standard_sse_constant_p (op, mode) || (CONST_WIDE_INT_NUNITS (op) * HOST_BITS_PER_WIDE_INT != GET_MODE_BITSIZE (mode))) - return nullptr; + return NULL_RTX; HOST_WIDE_INT val = CONST_WIDE_INT_ELT (op, 0); HOST_WIDE_INT val_broadcast; @@ -326,12 +326,12 @@ ix86_convert_const_wide_int_to_broadcast (machine_mode mode, rtx op) val_broadcast)) broadcast_mode = DImode; else - return nullptr; + return NULL_RTX; /* Check if OP can be broadcasted from VAL. */ for (int i = 1; i < CONST_WIDE_INT_NUNITS (op); i++) if (val != CONST_WIDE_INT_ELT (op, i)) - return nullptr; + return NULL_RTX; unsigned int nunits = (GET_MODE_SIZE (mode) / GET_MODE_SIZE (broadcast_mode)); @@ -525,7 +525,7 @@ ix86_expand_move (machine_mode mode, rtx operands[]) { rtx tmp = ix86_convert_const_wide_int_to_broadcast (GET_MODE (op0), op1); - if (tmp != nullptr) + if (tmp != NULL_RTX) op1 = tmp; } } @@ -541,13 +541,13 @@ ix86_broadcast_from_constant (machine_mode mode, rtx op) { int nunits = GET_MODE_NUNITS (mode); if (nunits < 2) - return nullptr; + return NULL_RTX; /* Don't use integer vector broadcast if we can't move from GPR to SSE register directly. */ if (!TARGET_INTER_UNIT_MOVES_TO_VEC && INTEGRAL_MODE_P (mode)) - return nullptr; + return NULL_RTX; /* Convert CONST_VECTOR to a non-standard SSE constant integer broadcast only if vector broadcast is available. */ @@ -557,7 +557,7 @@ ix86_broadcast_from_constant (machine_mode mode, rtx op) || GET_MODE_INNER (mode) == DImode)) || FLOAT_MODE_P (mode)) || standard_sse_constant_p (op, mode)) - return nullptr; + return NULL_RTX; /* Don't broadcast from a 64-bit integer constant in 32-bit mode. We can still put 64-bit integer constant in memory when @@ -565,14 +565,14 @@ ix86_broadcast_from_constant (machine_mode mode, rtx op) if (GET_MODE_INNER (mode) == DImode && !TARGET_64BIT && (!TARGET_AVX512F || (GET_MODE_SIZE (mode) < 64 && !TARGET_AVX512VL))) - return nullptr; + return NULL_RTX; if (GET_MODE_INNER (mode) == TImode) - return nullptr; + return NULL_RTX; rtx constant = get_pool_constant (XEXP (op, 0)); if (GET_CODE (constant) != CONST_VECTOR) - return nullptr; + return NULL_RTX; /* There could be some rtx like (mem/u/c:V16QI (symbol_ref/u:DI ("*.LC1"))) @@ -581,8 +581,8 @@ ix86_broadcast_from_constant (machine_mode mode, rtx op) { constant = simplify_subreg (mode, constant, GET_MODE (constant), 0); - if (constant == nullptr || GET_CODE (constant) != CONST_VECTOR) - return nullptr; + if (constant == NULL_RTX || GET_CODE (constant) != CONST_VECTOR) + return NULL_RTX; } rtx first = XVECEXP (constant, 0, 0); @@ -592,7 +592,7 @@ ix86_broadcast_from_constant (machine_mode mode, rtx op) rtx tmp = XVECEXP (constant, 0, i); /* Vector duplicate value. */ if (!rtx_equal_p (tmp, first)) - return nullptr; + return NULL_RTX; } return first; @@ -641,7 +641,7 @@ ix86_expand_vector_move (machine_mode mode, rtx operands[]) machine_mode mode = GET_MODE (op0); rtx tmp = ix86_convert_const_wide_int_to_broadcast (mode, op1); - if (tmp == nullptr) + if (tmp == NULL_RTX) op1 = validize_mem (force_const_mem (mode, op1)); else op1 = tmp; @@ -656,7 +656,7 @@ ix86_expand_vector_move (machine_mode mode, rtx operands[]) && CONSTANT_POOL_ADDRESS_P (XEXP (op1, 0)))) { rtx first = ix86_broadcast_from_constant (mode, op1); - if (first != nullptr) + if (first != NULL_RTX) { /* Broadcast to XMM/YMM/ZMM register from an integer constant or scalar mem. */ @@ -5797,7 +5797,7 @@ ix86_extract_perm_from_pool_constant (int* perm, rtx mem) { constant = simplify_subreg (mode, constant, GET_MODE (constant), 0); - if (constant == nullptr || GET_CODE (constant) != CONST_VECTOR) + if (constant == NULL_RTX || GET_CODE (constant) != CONST_VECTOR) return false; }