From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from outbound.mail.eo.outlook.com (mail-oln040093008007.outbound.protection.outlook.com [40.93.8.7]) by sourceware.org (Postfix) with ESMTPS id 1055F3858D35; Mon, 30 Aug 2021 20:33:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1055F3858D35 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Knn6+xqbNAHdCPfAIIuZZW8mpqBpXobnodS6cFnQ1X2Bx00ugdDx7Hz+YjlhgX1IGRSQ0tSX0z8cTzcU3T2N55eeYibwbmyC9sDcLKjt9gz9rMG7kBVYM7PH6t3dAGgK9rICrswpSHZ5PIW7mQauZz0bAhSCWjVXF2JFQv3x/a6I98O6Vfy2DIXiKfhF0lJ5+x9PtKwRpMqrgI6Dk9PpwQRi9Fx/OV6AgpYRt82xS7WD/nplXdSlmvtU/QcoEyQO4AeW4ajgzTpdhIlf9cThVnk/uNP5KfDkbJJtrKZ9VLfCN/hjN0RGt8N0K43oXxyZNJZw35hcE3/9cgGTk4qCOw== 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; bh=PBaFJxoaNfIULLB9H0QK453yWu+tS+GMLLPef5+yDVY=; b=EYbfWqtVnMnSmfw2j+Hustojs0BUdWEd6Dr2xcoLLF3rlu8KjqpyCv4iDI98ysWSdXdqdND6gzW3T+T9ufKQRGTdz8pcz+Fuy4dotkwzdbGv3lcC85EWd5gUA63cXhRRILc095jJvykyojdal3rb9C1jxXVM4ePQZadLHOPBBFG3pxhT5bxVj8co2KY1uSxekbntHpl5U21uka9p09ChY/R1BWQoiVrjhRZ9t5NOEzvotqDJbKtF7Gw4C7va0Yf8s0IIdVfsAwAIhoR4qF2v914paDrFmEZVecUuBsMgo6zxhUUAL54CZ7F9C7DRS244GIeL0HV0kHYfIEObQjcdrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none Received: from MWHPR2101MB0811.namprd21.prod.outlook.com (2603:10b6:301:7b::39) by MWHPR21MB0752.namprd21.prod.outlook.com (2603:10b6:300:76::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.2; Mon, 30 Aug 2021 20:33:03 +0000 Received: from MWHPR2101MB0811.namprd21.prod.outlook.com ([fe80::ddce:fd89:895a:ad37]) by MWHPR2101MB0811.namprd21.prod.outlook.com ([fe80::ddce:fd89:895a:ad37%8]) with mapi id 15.20.4457.003; Mon, 30 Aug 2021 20:33:02 +0000 From: Victor Tong To: Jeff Law , "gcc-patches@gcc.gnu.org" , "pinskia@gcc.gnu.org" Subject: Re: [EXTERNAL] Re: [PATCH] Propagate get_nonzero_bits information in division [PR77980] Thread-Topic: [EXTERNAL] Re: [PATCH] Propagate get_nonzero_bits information in division [PR77980] Thread-Index: AQHXgn/n5ys7KICWaEeSU7Cpo2ZElKuAlAeAgAwjF/4= Date: Mon, 30 Aug 2021 20:33:02 +0000 Message-ID: References: <110f4be7-8be8-a5ab-5637-e7717a4a1d35@gmail.com> In-Reply-To: <110f4be7-8be8-a5ab-5637-e7717a4a1d35@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-08-30T20:33:02.320Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9567e2f1-e3a4-4a54-efc0-08d96bf55d7d x-ms-traffictypediagnostic: MWHPR21MB0752: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0Y2nKD/hGl/7pY2zJAdqyKtdVgQiMy8RXYHjDoxJ1p59MAutV5d0ayPAGidpuzkYWurtpS8P98yKRabV3Y/s2GqRo1CFHnYBRzxfQTe1dTahKzLj4mPn4ZXbRmq6/hcLOkz73hLASJ0KwYtE9cMhBH9Uw0omVZfq7oLG10jRWI7IlhL0f43ct4h/qScu5b23hpuNU30n5BPwex6kYfBjuaCAulpU5Ib41neBjm2oPoDHQMj/h+xOTgwHzFYmQjl/T63xALpmxpdRJJvE5e2T9QTfaDHvFsfWkT3ykYoVXj/38CI3d+TVYdgpm2bm+6WiRHMqJbatCNET7h73MYqoh/+tX7j8adIEwwbVFQuR+iol73d18KnhxRWX5GPqKvfDjaFwnnkSyTHT1VvxBODbpcL8BRfhch0P0M3kjBHm4/ki7yho87TswbYciI4+16USGCFoGwwTFB9sCL5vPie7Or18f1HjP4CQsi7LnzzepoqLqu2vBc18V/Qs+Tk0sO4+ToT8yfctNlo69AfaXp9f+nfKwEZB7ToSHRx1b4KJy1MEZKUTPKJUM4/z27ztb9B09dGET6q3xDDqjM2fzUddf/c+4wrAnihXkxiYC3J0zos93QKUCaLlVIh3Qk1CdiBGjPWgy/0HmLwYDSj8ufgTkksiBwSP0N0umLywHVLvwMJFWXd+LZv7CIqRZ57G/JqBWxKP1jCKorUzL7U6HoRUZDrohEPlpYm2b+BKSIRlUjF6HiN6E/Ld4YczQVo0aPeVORODKCJG2suKtUid2mirQC2DYC0j4I+6vlOBWqrR+FA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR2101MB0811.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(186003)(8990500004)(52536014)(2906002)(5660300002)(53546011)(33656002)(10290500003)(26005)(86362001)(64756008)(66476007)(66446008)(38100700002)(508600001)(66556008)(82960400001)(110136005)(122000001)(66946007)(316002)(38070700005)(8936002)(9686003)(6506007)(83380400001)(55016002)(76116006)(71200400001)(82950400001)(966005)(8676002)(7696005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?l25t9senUwQi752Psalue5M5cU0bpJi0qw0ELulGFF/DUPNR5Jw4T+Svkp?= =?iso-8859-1?Q?yA7AF31l32e/meuFmq2WO1iOWMoY/vJQmXRGDJ+XgeDoVxTYZMHO5CTN2A?= =?iso-8859-1?Q?jsvGVb5PmAosf1I9DHTVAf192o7GygS4ogqPJzpz9MUMT6OELObe2oJHrX?= =?iso-8859-1?Q?dTGNK8lNf5kqD6ceYOqTh65uOsA2DTGRretdYkdcZv91SS9wkRu9DzS+GM?= =?iso-8859-1?Q?enhL04PhyzZSlnttEIl7QjjvPURB7F8ioXSJACuTsUjhRg0Lo+pmn0Wf0I?= =?iso-8859-1?Q?c5021UIeyvJrrR+8VwnLoCNxfEp8VWQpejOhEn2oTog8l/j5Ja+U3j2RyK?= =?iso-8859-1?Q?93cU+kxVtW7ygg5Ks/I0JqRKmAeILM75VQmFFqY1d51+gUzGnBUwhIwnDb?= =?iso-8859-1?Q?S4bAB7c7H2ZtcCIBuP72n+lwk7L+KXQkq9ULkWk39961dE+6ytpJRINDrb?= =?iso-8859-1?Q?aAeg8z5gaLGc0pEKJKqQktjJGHQOihDaypZ3SyCrwzy2gMgqxS/CfH6mc+?= =?iso-8859-1?Q?hRPi3XldUI8dhCZivMpxGlhzIMQYUIMbadGxieuz1EWxi+QxZyC0CCfsCU?= =?iso-8859-1?Q?W1t9UEONafpfdCsNHQzOvYMKull14Xf4VH0zxz0WeAqX3eyjdt9+ZMYrLU?= =?iso-8859-1?Q?5lZzuWtndrMa71vS+j739D9vLl399hlRRlwlsdI7K2b39BO2rNJeERdYmk?= =?iso-8859-1?Q?iBLuS/Yy+HsIKVFGMdT9pX4/VDCwZE2XbCVExAOyT736RTPIXZFYsjJJ9p?= =?iso-8859-1?Q?uNBRNmORxTSgL+y+3/zpCyuq3JJUCfsvp9ZNNiD4X73wbkIAXhjaLa17rY?= =?iso-8859-1?Q?MsbiQt8n693qHfxbFe2T5IuKTCWs4Xr58GPDqr6DRDXxrmWdE8YcU4stTr?= =?iso-8859-1?Q?g4xGfVrPG9d1vxoYX9kyYFAaOPTd68WvRlNul2q59SiCNax3XdXFIqFBeZ?= =?iso-8859-1?Q?dpTHu8BzaIby+WZ9B27uh0SMDTEpGnXntCcd2kcoo+lAxbtQElP78/stdk?= =?iso-8859-1?Q?m/kFbL2iL/3vLWbH3jOD5E1LGMuLnN1NtoC7UHMTzv8rfjKtuVRVTx70g+?= =?iso-8859-1?Q?H6nlDHr+tQrKIzHvXaYjQpTTavbMU1cF6p3sO8LzU2f490EbhuBMs5bIcv?= =?iso-8859-1?Q?qbuqhxKS5unxyvXqYFYyJxLeHKpkiGuMgMAZLqWsFiuMIMLQHLVJYXRbVp?= =?iso-8859-1?Q?sRbCCSAcwkBC6GT9WB+3XiKxn5XziTTqJL8SEtsbMd5HEzsvl/9PMFn/KT?= =?iso-8859-1?Q?SSUImEkswj2MVsBqvVlmni3pKvDZAtybs9rugj209W2po6SRTGayYgp/3n?= =?iso-8859-1?Q?e8Li+ks8YjsiGxCipZApn2PFj5SKSzv+ODRM+TRLgkjznBM=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR2101MB0811.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9567e2f1-e3a4-4a54-efc0-08d96bf55d7d X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Aug 2021 20:33:02.8640 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ctn6HtjiSPjxeIZBxuUK+DPrApaTQunjdE9i4iGlANwHPUcTS+Ii/WWt5so92V1L0UET0RKzSyUyJaI3h29HnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0752 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_NONE, TXREP, T_SPF_HELO_TEMPERROR 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Aug 2021 20:33:15 -0000 Thanks Jeff.=A0I've reached out to Roger to see if the fix would be better = suited in CCP. If that isn't the right spot, I'll reach out to Aldy and And= rew about getting the fix in VRP/Ranger.=0A= =0A= =0A= From: Jeff Law =0A= Sent: Sunday, August 22, 2021 8:11 PM=0A= To: Victor Tong ; gcc-patches@gcc.gnu.org ; pinskia@gcc.gnu.org =0A= Subject: [EXTERNAL] Re: [PATCH] Propagate get_nonzero_bits information in d= ivision [PR77980] =0A= =A0=0A= =0A= =0A= On 7/26/2021 6:45 PM, Victor Tong via Gcc-patches wrote:=0A= > This change enables the "t1 !=3D 0" check to be optimized away in this co= de:=0A= >=0A= > int x1 =3D 0;=0A= > unsigned int x2 =3D 1;=0A= >=0A= > int main ()=0A= > {=0A= >=A0=A0=A0=A0=A0 int t1 =3D x1*(1/(x2+x2));=0A= >=A0=A0=A0=A0=A0 if (t1 !=3D 0) __builtin_abort();=0A= >=A0=A0=A0=A0=A0 return 0;=0A= > }=0A= >=0A= > The change utilizes the VRP framework to propagate the get_nonzero_bits i= nformation from the "x2+x2" expression to the "1/(x2+x2)" division expressi= on. Specifically, the framework knows that the least significant bit of the= "x2+x2" expression must be zero.=0A= >=0A= > The get_nonzero_bits information of the left hand side and right hand sid= e of expressions needed to be passed down to operator_div::wi_fold() in the= VRP framework. The majority of this change involves adding two additional = parameters to propagate this information. There are future opportunities to= use the non zero bit information to perform better optimizations in other = types of expressions.=0A= >=0A= > The changes were tested against x86_64-pc-linux-gnu and all tests in "mak= e -k check" passed.=0A= >=0A= > The original approach was to implement a match.pd pattern to support this= but the pattern wasn't being triggered. More context is available in: http= s://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgcc.gnu.org= %2Fbugzilla%2Fshow_bug.cgi%3Fid%3D77980&data=3D04%7C01%7Cvitong%40micro= soft.com%7C08dcd27e5482418d559708d965e3a826%7C72f988bf86f141af91ab2d7cd011d= b47%7C1%7C0%7C637652850726534114%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD= AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=3DS1WWWvu= XwEIA20pmv%2Fn8kk6xlwv9VwsS%2BTl0jqEHf4w%3D&reserved=3D0=0A= So you're going to want to sync with Aldy & Andrew as they're the =0A= experts on the Ranger design & implementation.=A0 This hits the Ranger API = =0A= as well as design questions about how best to tie in the nonzero_bits =0A= capabilities.=0A= =0A= You might also want to reach out to Roger Sayle.=A0 He's been poking =0A= around in a closely related area, though more focused on the bitwise =0A= conditional constant propagation rather than Ranger/VRP.=A0 In fact, I =0A= just acked a patch of his that looks closely related.=0A= =0A= https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgcc.gnu= .org%2Fpipermail%2Fgcc-patches%2F2021-August%2F577888.html&data=3D04%7C= 01%7Cvitong%40microsoft.com%7C08dcd27e5482418d559708d965e3a826%7C72f988bf86= f141af91ab2d7cd011db47%7C1%7C0%7C637652850726534114%7CUnknown%7CTWFpbGZsb3d= 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&= amp;sdata=3Dgn1L1exTW5TjdV8CDBDqB0Z5a4V7EP2tBM2uTF2ihck%3D&reserved=3D0= =0A= =0A= Jeff=