Message ID | E162E08C-A432-4091-BC1D-9C8A6E5C9839@oracle.com |
---|---|
State | New |
Headers |
Return-Path: <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DC303385840D for <patchwork@sourceware.org>; Tue, 2 Nov 2021 22:31:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DC303385840D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1635892285; bh=LNHp5ZsP8zRPHszcgSnsV3v44REnADpWZQQJ6VpEVUw=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=g6rObdky61omBn0E6f8YeLZzfDAwm7nd08x9BrWPPgqwyosnAHVrEJZTjoT7EKzz9 SAEeBeGo0wvt0JS1XX/q/Rq0uyJpE4rvMlkbrsBAfaeCHZGt3WVxlEIlHzMDCKjHHx qLYru46aZgmgYCqfYcJenYaXzEFswuRyBCsJGS4g= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 2138E3858C27 for <gcc-patches@gcc.gnu.org>; Tue, 2 Nov 2021 22:30:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2138E3858C27 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1A2L4Yj4018088; Tue, 2 Nov 2021 22:30:54 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3c26e8jjef-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Nov 2021 22:30:54 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1A2MGIPM079584; Tue, 2 Nov 2021 22:30:53 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2175.outbound.protection.outlook.com [104.47.55.175]) by userp3020.oracle.com with ESMTP id 3c1khucw2u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Nov 2021 22:30:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m5UZJn31k3xZIPlpHh7dlMZXjEvwfoaNE+5WKsVFN452JwlxR4Uv/KKmMjaM4Na3BMYxLz54i/WbetpfS2/XnyldRCNDusD+iwNviDip2+4WEhdkF94UzHsjOS1qNOlUmWmygZcs8K0mm9ZH83iujjR3+Rsr9VSxBwVEqHPf215dYxu2Usieo3Ss19mupZpvwcfUh0n1SGlwvBKarKLfEDURAp2DEY5aRgMZQ47X/5LmbV4ymkBLT+mnGWKJrLpX5Uz8GVbL16jPoFvHW6EMi2kjIiPYU8BfzlYCAmOLdXEliikL7SGJFyKqu9xFs6hNc+5n8/aDfk245p2w0uE4xA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LNHp5ZsP8zRPHszcgSnsV3v44REnADpWZQQJ6VpEVUw=; b=krj48Z2hc3JFRiEgSY3F35Aqy9kAgyy1QWiFfQc+3Q5Y4wIhxheo/KFl1Wc8Jkc/VkcAEAAHlzcHeeYEH0Csb9cWnBMVveWJXhV175Asg0I3rGjGUXlUOTYVufO6o0AElehkqk+kO8VXlH/T75xHoJjHA9eToShATw6zpm3Tc2T0nItJb0xmJAs5pR+ztKXIg8eqL+6MN32Le57rWoQVnB6Gpc7IIJu+ECThtLohYM7vxYcvZPdVSf93QV0MX8giJ+62UgGuq/k/Nen1qKC+H1IeMyoahf6VrmnmvRhQ4jwMMVwXrkM65uIebi+9YZfLge8q4Rw+EX22633qwYXjKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CH2PR10MB3768.namprd10.prod.outlook.com (2603:10b6:610:7::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov 2021 22:30:51 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8dd2:f5a2:23e8:1a7c]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8dd2:f5a2:23e8:1a7c%7]) with mapi id 15.20.4649.020; Tue, 2 Nov 2021 22:30:51 +0000 To: richard Biener <rguenther@suse.de> Subject: [patch][PR103033]handle the case when native_interpret_expr return NULL Thread-Topic: [patch][PR103033]handle the case when native_interpret_expr return NULL Thread-Index: AQHX0DlKjQxI11aQ3Ea2A1WiafKfyQ== Date: Tue, 2 Nov 2021 22:30:51 +0000 Message-ID: <E162E08C-A432-4091-BC1D-9C8A6E5C9839@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 683cdd6e-2aee-4ae5-c720-08d99e506cfa x-ms-traffictypediagnostic: CH2PR10MB3768: x-microsoft-antispam-prvs: <CH2PR10MB3768E09FF2A6C8446D3A4FFA808B9@CH2PR10MB3768.namprd10.prod.outlook.com> x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rbksbcPowMOUdDZwy1tj36rLV4Q6Kmhk6yyuZLRaZvHjo7W0eHMH89rXCrFZJ7atNN419szVSLkoYSfYevI/0Zk7doobZ1b0TtsYyzrEIsDi2XOaaHwrOL2MhUr58PnIJQhTj4GZZDzwFg4JNzQpbN7+3Twrrbq+Ni0V0SjJMqH9jFxepcuSFqHnxe9GKTXJmReDsBo1miylx6O+pPkiHIophY2NwBVvTxcWzxGC+XsYeMP99+C96kuHZxpjplc9/W3bZGXKJXPT6kS9KeOVew9Sg4GIpWRmcE0fRckqL7hphwMExcHg8zLB2iOvoDjb7WK8uZokhwHSA1nQ5pJYT1y07PSOmcBcLCT/WP5vD4vL0n/BPvIqnRUHybhnwsQsF4MBSXdUGcwF+dhvF2Ixd/mkTo6M81b1P+2d+yMqNeuJXfvbTP0hiUWNQYqGiV0WglsOeE21HaelxJymncq0RkBDsa2TqQYqZhsIWlWlWOZLc08UDZQQiMr9d2Cpqzsd8SbrpNQhRgVWe6gvIBEqibLPHajRIx+F5QvvOuTPDG3nEXK3v1wmbdGbSTKjouLYkaj/LgnKGgOeEZgiOdWr9le5WT8oczMKExJbcp6fHIRdsRpwsH4Vz87qTOcbDcmL3YyM1xwc+0YC5xVc9hywPLTcGO78gFnWz6q6kPBKWkstNpWVoC7DrJPKPwyV/dtvsr2OLpn4Wf+rWFk7XSzEX5BunzdAkxQVQjRhTymju1GJvuFanZeQ29uF06WmVm8c8qhLxYS7q1sfyKOXLprL2D/4ZdIkgR7mf5883+/2sph7A4Y66nP6Wefea68RrAfK x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR10MB4344.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(122000001)(38070700005)(6506007)(2906002)(38100700002)(186003)(2616005)(8936002)(316002)(53546011)(44832011)(26005)(8676002)(508600001)(6512007)(966005)(66476007)(64756008)(36756003)(6916009)(71200400001)(83380400001)(86362001)(33656002)(4326008)(76116006)(91956017)(6486002)(5660300002)(66946007)(66446008)(66556008)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?6kLwhdnGb7Rl+Ei7MInhCaGdEi0L?= =?utf-8?q?lm/o+k9E1nrl6vNbnq4nTlpmVDbiZkxOW2Wi8J1MOnNoVLg/1peTLY01L/jc5tAas?= =?utf-8?q?+blKv5uCSOpn6twwbgk2Q5oDPbs/l4XuCNO4vsxvQyR9SfQIRTMj/TffUtUsss99Z?= =?utf-8?q?pLLFW+nf+BfXZGF/i64trTcpPDWmsXhgVvQnnhdYZHhKbye+yhDVKS+ceBj6YoBGE?= =?utf-8?q?MjpSLvJMB2dMXOKKTt9fvHKoB6/d45FXqDL+ZZhffSNCv8ZJuTpNc2iTtc77L88eF?= =?utf-8?q?aYt7yBKCUccOsVGDy6ckMGVvJ+r4mAyIYHcKT+tlXwxS7FeH6B/jY1bCDGVwRtQ2P?= =?utf-8?q?XToXjnMkH1Sc/24KCvP6BMPI2BRvKRf4Gg1dWVbZB+avEz6yswDNZhINb8oKSrhXj?= =?utf-8?q?Eka8haYSPMskWJlnxN2CpkZWOu2ngAkLKXCNim2vNdpgCSeetJCjwXAzEhotT5ZQX?= =?utf-8?q?lqlvcyNnEJ8AU59pINSkajTpNxuSoMg0rfbPQb/ZvgrhZVhTisrFwjAh9DbWhSjII?= =?utf-8?q?ZBN07H3R6AXAVTJFHhNCuFjIUK8IicVkPs+mfq8kNHDQw6Dv7697hEu39SoWMERze?= =?utf-8?q?RHOylMQYCFYv/tSREeDoEugrh9hJBaEmDnC6CeCOEbc+x5tevTKOkleWUtnnuz2tN?= =?utf-8?q?447Gr4h8e6EJdcd3BzoKARIxLQHk/U70zpcg2qxJf5l4OG112jwWaiQBskoapRLLF?= =?utf-8?q?xJrSnrCIgaBCydJF/6zuZ69gdCSV4KmZdUDzI/cXC7OFA9mUcRnCsdu8t8adEaVv0?= =?utf-8?q?YfarfuruX3Xf4fkvxOrPD2B1RCtn4NCPY+2utCDIKX1eeQGqnbCWgakRW1nZuzYYa?= =?utf-8?q?uGC9F/dm7mvColfxEVASYxpOusPVmvTKE1I54pulKbs2xP1YcAKOrnc4xskfmnKoq?= =?utf-8?q?PvqT+8dT0gPMnsB2GT2ciwa4yB+xCtZDsKOiRVsFWmIMarSEVQET9YFmZurFrsHH5?= =?utf-8?q?alOVOkrjItN5PtSd9OPqzdFrUL+CwBsw0Aeb/CYyDg7FUFS+U3tz70zdhqC5syPIW?= =?utf-8?q?4Js2Xsy7iIlTC7Wf4hNW+b66GWkSU8oaEsdjRdm8jZoCjComTax5DKyZcvs8sFM9w?= =?utf-8?q?78C8HkW0bXyMpx/iDyyt0KgQX+Ekmbx4gupRcXcKkJop4kDxuaREsxa94ffGwFlQI?= =?utf-8?q?qcI2UD3a+z7i+go9m0LY2265hV5/gOba9aYc2WjKdZSqewrt9okjinhsg25kicUWC?= =?utf-8?q?RdYK455n5FNVOqQXAmFeHdwRFD02DDy716Yuc53JMZ1JnQCqpI62RcfXMIttlYEB9?= =?utf-8?q?Snti6cp9TG+V3t7RPm3SmzLmvcGUzlyOmUPpa9Kib+lBZOpLtvuZXOiB5musT7K/Q?= =?utf-8?q?bZY6Z3y3vL6Ny92ix9liu83CZRno5yVtNezSHyjiwVuQUq7xie6k68jbTJtyryCy+?= =?utf-8?q?P06ZWpfRCVAYq+DBiE9b1igbEMXQlY5A4VnO+ux0NOhCaJ/Vc7IY5ITFog8t5JaX1?= =?utf-8?q?+Kt5iNk5pa+vB2hx21Mv0DENLeajkC8GIbGsFDYnUHfHcqF1UpRvLQWgrvhI2KMTY?= =?utf-8?q?liU0N+LWQF6s60udwFN5916zgl3m9iNPTlv5cZAoYDQL8/AyzyK48y4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <439DABB50ACA354BABE58C3ADE0A8B55@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 683cdd6e-2aee-4ae5-c720-08d99e506cfa X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2021 22:30:51.1477 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: U3/2j45mijTI20jmdPotant8ToKVPSCkbGancjlvCCTwqrVyNdW98vMnweCJ3XBftdd2jJH2qrG8YIaMpNi1Yw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB3768 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10156 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111020116 X-Proofpoint-GUID: OR2wUs7uvzxCXnmQSS-HbxS1y7jBH6y- X-Proofpoint-ORIG-GUID: OR2wUs7uvzxCXnmQSS-HbxS1y7jBH6y- X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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 <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> From: Qing Zhao via Gcc-patches <gcc-patches@gcc.gnu.org> Reply-To: Qing Zhao <qing.zhao@oracle.com> Cc: gcc-patches Nick Alcock via <gcc-patches@gcc.gnu.org> Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> |
Series |
[PR103033] handle the case when native_interpret_expr return NULL
|
|
Commit Message
Qing Zhao
Nov. 2, 2021, 10:30 p.m. UTC
Hi,
PR103033 (c-c++-common/auto-init-4.c ICEs starting with r12-4829)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103033
Is an -ftrivial-auto-var-init bug exposed on Powerpc64-linux only.
For the following code in gcc/internal-fn.c:
3085 if (can_native_interpret_type_p (var_type))
3086 init = native_interpret_expr (var_type, buf, total_bytes);
...
3105 expand_assignment (lhs, init, false);
there is an inconsistency between "can_native_interpret_type_p" and "native_interpret_expr" for "long double" on Powerpcle:
although "can_native_interpre_type_p(long double)" return true, "native_interpret_expr (long double, buf,...) return NULL on Powerpcle
Due to the fix for PR95450.
Therefore, we should expect that “native_interpret_expr” might return NULL, and under such situation, fall though to the more conservative path to
generate “init”
The fix is very simple, and bootstrapped on x86, aarch64, and powerpc. Regression testing are ongoing.
Okay for trunk?
Qing
=====
From 22cf4fee8cf4b050ab41a3de074db70359421b23 Mon Sep 17 00:00:00 2001
From: Qing Zhao <qing.zhao@oracle.com>
Date: Tue, 2 Nov 2021 22:28:13 +0000
Subject: [PATCH] PR 103033 (c-c++-common/auto-init-4.c ICEs starting with
r12-4829)
Fall through more conservative path to generate patten when
native_interpret_expr return NULL.
gcc/ChangeLog:
2021-11-02 qing zhao <qing.zhao@oracle.com>
* internal-fn.c (expand_DEFERRED_INIT): Handle the case when
native_interpret_expr return NULL.
---
gcc/internal-fn.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
Comments
On Tue, 2 Nov 2021, Qing Zhao wrote: > Hi, > > PR103033 (c-c++-common/auto-init-4.c ICEs starting with r12-4829) > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103033 > > Is an -ftrivial-auto-var-init bug exposed on Powerpc64-linux only. > > For the following code in gcc/internal-fn.c: > > 3085 if (can_native_interpret_type_p (var_type)) > 3086 init = native_interpret_expr (var_type, buf, total_bytes); > ... > 3105 expand_assignment (lhs, init, false); > > there is an inconsistency between "can_native_interpret_type_p" and "native_interpret_expr" for "long double" on Powerpcle: > although "can_native_interpre_type_p(long double)" return true, "native_interpret_expr (long double, buf,...) return NULL on Powerpcle > Due to the fix for PR95450. > > Therefore, we should expect that “native_interpret_expr” might return NULL, and under such situation, fall though to the more conservative path to > generate “init” > > The fix is very simple, and bootstrapped on x86, aarch64, and powerpc. > Regression testing are ongoing. > > Okay for trunk? I'm testing a change to completely elide the native_interpret_expr path. We've assured an integer mode of the required size exists and doing an init from an integer is more natural and less prone to for example raise spurious FP exceptions. What remains to be done is to directly generate RTL for this case rather than going through expand_assignment, we'd want to generate a (set (subreg:IntMode (reg:X ...) ..) (const_int ...)) when possible. With the recent fix to not wrap an SSA LHS inside a VIEW_CONVERT_EXPR that became less likely. > Qing > > ===== > From 22cf4fee8cf4b050ab41a3de074db70359421b23 Mon Sep 17 00:00:00 2001 > From: Qing Zhao <qing.zhao@oracle.com> > Date: Tue, 2 Nov 2021 22:28:13 +0000 > Subject: [PATCH] PR 103033 (c-c++-common/auto-init-4.c ICEs starting with > r12-4829) > > Fall through more conservative path to generate patten when > native_interpret_expr return NULL. > > gcc/ChangeLog: > > 2021-11-02 qing zhao <qing.zhao@oracle.com> > > * internal-fn.c (expand_DEFERRED_INIT): Handle the case when > native_interpret_expr return NULL. > --- > gcc/internal-fn.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c > index fd6cb0995d9..0d056fdceea 100644 > --- a/gcc/internal-fn.c > +++ b/gcc/internal-fn.c > @@ -3082,9 +3082,8 @@ expand_DEFERRED_INIT (internal_fn, gcall *stmt) > unsigned char *buf = (unsigned char *) xmalloc (total_bytes); > memset (buf, (init_type == AUTO_INIT_PATTERN > ? INIT_PATTERN_VALUE : 0), total_bytes); > - if (can_native_interpret_type_p (var_type)) > - init = native_interpret_expr (var_type, buf, total_bytes); > - else > + if (!(can_native_interpret_type_p (var_type) > + && (init = native_interpret_expr (var_type, buf, total_bytes)))) > { > tree itype = build_nonstandard_integer_type > (total_bytes * BITS_PER_UNIT, 1); >
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c index fd6cb0995d9..0d056fdceea 100644 --- a/gcc/internal-fn.c +++ b/gcc/internal-fn.c @@ -3082,9 +3082,8 @@ expand_DEFERRED_INIT (internal_fn, gcall *stmt) unsigned char *buf = (unsigned char *) xmalloc (total_bytes); memset (buf, (init_type == AUTO_INIT_PATTERN ? INIT_PATTERN_VALUE : 0), total_bytes); - if (can_native_interpret_type_p (var_type)) - init = native_interpret_expr (var_type, buf, total_bytes); - else + if (!(can_native_interpret_type_p (var_type) + && (init = native_interpret_expr (var_type, buf, total_bytes)))) { tree itype = build_nonstandard_integer_type (total_bytes * BITS_PER_UNIT, 1);