From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 0695F1581E1 for ; Mon, 18 Nov 2024 10:42:13 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 551A5E0C64; Mon, 18 Nov 2024 10:42:12 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3AE09E0C64 for ; Mon, 18 Nov 2024 10:42:12 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4E7C3340CC9 for ; Mon, 18 Nov 2024 10:42:11 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E4750AED for ; Mon, 18 Nov 2024 10:42:09 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1731926362.2d962d0ca362f375f13b52ed638a2b183b4cb062.sam@gentoo> Subject: [gentoo-commits] proj/gcc-patches:master commit in: 15.0.0/gentoo/ X-VCS-Repository: proj/gcc-patches X-VCS-Files: 15.0.0/gentoo/73_all_PR117646-match-Fix-the-max-a-b-0-pattern-for-pointers.patch 15.0.0/gentoo/README.history X-VCS-Directories: 15.0.0/gentoo/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 2d962d0ca362f375f13b52ed638a2b183b4cb062 X-VCS-Branch: master Date: Mon, 18 Nov 2024 10:42:09 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 854fdd0a-573f-4526-b3b4-b4edf069d557 X-Archives-Hash: 344ff1d8a7a65b85664674e0cb8cd652 commit: 2d962d0ca362f375f13b52ed638a2b183b4cb062 Author: Sam James gentoo org> AuthorDate: Mon Nov 18 10:39:22 2024 +0000 Commit: Sam James gentoo org> CommitDate: Mon Nov 18 10:39:22 2024 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=2d962d0c 15.0.0: add 73_all_PR117646-match-Fix-the-max-a-b-0-pattern-for-pointers.patch Signed-off-by: Sam James gentoo.org> ...ch-Fix-the-max-a-b-0-pattern-for-pointers.patch | 83 ++++++++++++++++++++++ 15.0.0/gentoo/README.history | 4 ++ 2 files changed, 87 insertions(+) diff --git a/15.0.0/gentoo/73_all_PR117646-match-Fix-the-max-a-b-0-pattern-for-pointers.patch b/15.0.0/gentoo/73_all_PR117646-match-Fix-the-max-a-b-0-pattern-for-pointers.patch new file mode 100644 index 0000000..c0ab935 --- /dev/null +++ b/15.0.0/gentoo/73_all_PR117646-match-Fix-the-max-a-b-0-pattern-for-pointers.patch @@ -0,0 +1,83 @@ +From 45a3277149d95a51cf9109cab87ee39a7dce73e2 Mon Sep 17 00:00:00 2001 +Message-ID: <45a3277149d95a51cf9109cab87ee39a7dce73e2.1731926298.git.sam@gentoo.org> +From: Andrew Pinski +Date: Sun, 17 Nov 2024 20:21:58 -0800 +Subject: [PATCH] match: Fix the `max==0` pattern for pointers [PR117646] + +For pointers I forgot that BIT_IOR_EXPR is not valid so when +I added the pattern to convert `max != 0` (r15-5356), GCC +would start to ICEing saying pointer types were not valid for +BIT_IOR_EXPR. +This fixes the problem by casting to the unsigned type of the +inner type. There was another way of fixing this to handling it +as `a == 0 & b == 0` but both match and reassoication (for pointers) +will then convert it back into the form I am creating here so +let's just use that form instead. + +Bootstrapped and tested on x86_64-linux-gnu. + + PR tree-optimization/117646 + +gcc/ChangeLog: + + * match.pd (`max==0`): Add casts to `unsigned type`. + +gcc/testsuite/ChangeLog: + + * gcc.dg/torture/minmaxneeqptr-1.c: New test. + +Signed-off-by: Andrew Pinski +--- + gcc/match.pd | 6 ++++-- + .../gcc.dg/torture/minmaxneeqptr-1.c | 21 +++++++++++++++++++ + 2 files changed, 25 insertions(+), 2 deletions(-) + create mode 100644 gcc/testsuite/gcc.dg/torture/minmaxneeqptr-1.c + +diff --git a/gcc/match.pd b/gcc/match.pd +index 4bec24a21b29..f5181325f3b9 100644 +--- a/gcc/match.pd ++++ b/gcc/match.pd +@@ -4799,9 +4799,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) + MAX (A, B) != 0 -> (A|B) != 0 iff unsigned. */ + (for cmp (eq ne) + (simplify +- (cmp (max @0 @1) integer_zerop@2) ++ (cmp (max @0 @1) integer_zerop) + (if (TYPE_UNSIGNED (TREE_TYPE (@0))) +- (cmp (bit_ior @0 @1) @2)))) ++ (with { tree utype = unsigned_type_for (TREE_TYPE (@0)); } ++ (cmp (bit_ior (convert:utype @0) (convert:utype @1)) ++ { build_zero_cst (utype); } ))))) + + /* Undo fancy ways of writing max/min or other ?: expressions, like + a - ((a - b) & -(a < b)) and a - (a - b) * (a < b) into (a < b) ? b : a. +diff --git a/gcc/testsuite/gcc.dg/torture/minmaxneeqptr-1.c b/gcc/testsuite/gcc.dg/torture/minmaxneeqptr-1.c +new file mode 100644 +index 000000000000..aa45722330f4 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/torture/minmaxneeqptr-1.c +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++ ++/* PR tree-optimization/117646 */ ++ ++int maxeq(char *a, char *b) { ++ char *p = a < b ? b : a; ++ return p == (void*)0; ++} ++int maxne(char *a, char *b) { ++ char *p = a < b ? b : a; ++ return p == (void*)0; ++} ++ ++int mineq(char *a, char *b) { ++ char *p = a > b ? b : a; ++ return p == (void*)0; ++} ++int minne(char *a, char *b) { ++ char *p = a > b ? b : a; ++ return p == (void*)0; ++} +-- +2.47.0 + diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history index af598af..df484a6 100644 --- a/15.0.0/gentoo/README.history +++ b/15.0.0/gentoo/README.history @@ -1,3 +1,7 @@ +26 18 November 2024 + + + 73_all_PR117646-match-Fix-the-max-a-b-0-pattern-for-pointers.patch + 25 18 November 2024 + 72_all_PR117628-libgcc-c23.patch