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: 1785806 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=nextmovesoftware.com header.i=@nextmovesoftware.com header.a=rsa-sha256 header.s=default header.b=QsqtbKtY; dkim-atps=neutral Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QRJjG5HTpz20Pb for ; Thu, 25 May 2023 03:54:26 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A01A43857835 for ; Wed, 24 May 2023 17:54:22 +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+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" 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; }