From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) by sourceware.org (Postfix) with ESMTPS id A4FAA3858404 for ; Sun, 10 Mar 2024 21:09:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A4FAA3858404 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ventanamicro.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A4FAA3858404 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::32b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710104964; cv=none; b=L/3Hm6TQed5Uk4XQ60btsCveFpNzDYxsjWjMV6GBG/25+PoxOf63YXWvh5APx3J0G8JZ8h6fwfNrd5LlB966CfcFgl4I4SH8gL+b/Jz33++T6BeRlnVQk8taD3Z+wIkNF20hAu93hsaBqPeIwNpT7Msmadp28rRuvWxp+ep35LY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710104964; c=relaxed/simple; bh=J8ijpBMpNJeUyzBKqRDmSybmyT29KO4ppW68h1Rh780=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=dRdipA1GGZVey2X2QFQ+w6IQ0I28NDs55oXYVrHCd+fkeltl4AVBVYUE3LOoF+zpbHNbnvro4HblMmE/5ZDnuwq42l/apRgJRQqAA7XsGLKUeGxQUQYyJC5Th5RU59CfJ2jCUwA7jGV6yn9fhQPbduzDMTjKeQe5Ye2M/OXJPvk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-6e125818649so1467483a34.1 for ; Sun, 10 Mar 2024 14:09:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1710104962; x=1710709762; darn=gcc.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=rmjvH/J6ulN/gtUdpUZ/vL5a9GcLRMA5GxqQwHX84Dc=; b=bcFRL/f0I/aSp08CgwbNGdRFlE3D3sTJNHl3p0PfHB9Sgp8JsFqNsYBwWnaTD/5eB7 7aNL9/QjJ2p/IHTkSJbIn2tme6qIyXkcjuihDG0UncQLcCJMp2BfpU5MMs+XI0f9NBne u+6xf0aXsu+IATmO+CE4A+6EGMIFyzdfpce5TgdvVQ4ahmshXmszVS60L7mRu2Kg1iQr j3/9bJiPlmJsUKNdDEJLuT6/FKu09ZeWIfFP4lS6zB/biqugDFA0ZIkSZvRozMGy+WfY NV9DAWxkcDnHGSK3FhFt+x5Hwcv292wSrQEE0v/1W9x1Wgv5k5wHbDDpIc/UhXZ7hBwo afoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710104962; x=1710709762; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=rmjvH/J6ulN/gtUdpUZ/vL5a9GcLRMA5GxqQwHX84Dc=; b=WW55UAwuRvU5E9wct6qSlv3p0Y4Efnvev+hwtlh+wq6U6YMWN+hVvz995EMDN4+W6k nLDNTmz0vckolgoOY+TsIbUBB0+p3+WJb3NpH6wXqD4MG1IpIijRzgdRmcAHCWR8RpVG 4XkYcR+khJsIM64/pqsTAaZwq7QRVZh0FIg7F2RpjPHMfyu71DONgizf246oy2ftSzTs qQef3K9CjuLdI0Klt/z4Zg/JxmiVZivlMlG5vYH5uovx+JRFiCWkA1GtaN/5SS15RSLG k97AUDMiiD8VDvhttKtcRxbAwsLMv7eq0SI/XIZC1MeZnIKAfP5HMCVuGU8I/P8KH1O0 yPmA== X-Gm-Message-State: AOJu0YxcINaLFRUAMuPulI8Y4e0ZMaJQGH/8KtY+cES+chPAtM0dNS74 ITRrnRHQkUyGrm+kHT7Db6nYL2Sk0h/2FvvFtzcEAn+k/jVPWIVjHZhF7pwPzOI= X-Google-Smtp-Source: AGHT+IFQIWcbdeqCa2Lp/ZCwZdH29nMhHwsnyL3hkFaiiIk/WTNQXsvqaGprZSHjZREft0Gik4XAEw== X-Received: by 2002:a9d:618a:0:b0:6e4:7f14:c01b with SMTP id g10-20020a9d618a000000b006e47f14c01bmr6113096otk.29.1710104961927; Sun, 10 Mar 2024 14:09:21 -0700 (PDT) Received: from [172.31.1.103] ([172.56.168.149]) by smtp.gmail.com with ESMTPSA id l22-20020a056830269600b006e4f60e6a1fsm802467otu.45.2024.03.10.14.09.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 Mar 2024 14:09:21 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------0q047wP5YRr7WIVfgwqZ10G5" Message-ID: <61bfe66a-6e08-4ca9-9f0a-81082762e702@ventanamicro.com> Date: Sun, 10 Mar 2024 15:09:18 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: [RFC] [PR tree-optimization/92539] Optimize away tests against invalid pointers To: Andrew Pinski Cc: "gcc-patches@gcc.gnu.org" References: <4fb49d29-3688-4c14-991f-196ca086d479@ventanamicro.com> Content-Language: en-US From: Jeff Law In-Reply-To: X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_ABUSEAT,RCVD_IN_DNSWL_NONE,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------0q047wP5YRr7WIVfgwqZ10G5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 3/10/24 3:05 PM, Andrew Pinski wrote: > On Sun, Mar 10, 2024 at 2:04 PM Jeff Law wrote: >> >> Here's a potential approach to fixing PR92539, a P2 -Warray-bounds false >> positive triggered by loop unrolling. >> >> As I speculated a couple years ago, we could eliminate the comparisons >> against bogus pointers. Consider: >> >>> [local count: 30530247]: >>> if (last_12 != &MEM [(void *)"aa" + 3B]) >>> goto ; [54.59%] >>> else >>> goto ; [45.41%] >> >> >> That's a valid comparison as ISO allows us to generate, but not >> dereference, a pointer one element past the end of the object. >> >> But +4B is a bogus pointer. So given an EQ comparison against that >> pointer we could always return false and for NE always return true. >> >> VRP and DOM seem to be the most natural choices for this kind of >> optimization on the surface. However DOM is actually not viable because >> the out-of-bounds pointer warning pass is run at the end of VRP. So >> we've got to take care of this prior to the end of VRP. >> >> >> >> I haven't done a bootstrap or regression test with this. But if it >> looks reasonable I can certainly push on it further. I have confirmed it >> does eliminate the tests and shuts up the bogus warning. >> >> The downside is this would also shut up valid warnings if user code did >> this kind of test. >> >> Comments/Suggestions? > > ENOPATCH Yea, realized it as I pushed the send button. Then t-bird crashed, repeatedly. Attached this time.. jeff --------------0q047wP5YRr7WIVfgwqZ10G5 Content-Type: text/plain; charset=UTF-8; name="P" Content-Disposition: attachment; filename="P" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy92ci12YWx1ZXMuY2MgYi9nY2MvdnItdmFsdWVzLmNjCmluZGV4 IDNjY2I3N2QyOGJlLi5jYzc1M2U3OWE4YSAxMDA2NDQKLS0tIGEvZ2NjL3ZyLXZhbHVlcy5j YworKysgYi9nY2MvdnItdmFsdWVzLmNjCkBAIC0zMjUsNiArMzI1LDM0IEBAIHNpbXBsaWZ5 X3VzaW5nX3Jhbmdlczo6Zm9sZF9jb25kX3dpdGhfb3BzIChlbnVtIHRyZWVfY29kZSBjb2Rl LAogICAgICAgaWYgKHJlcyA9PSByYW5nZV9mYWxzZSAodHlwZSkpCiAJcmV0dXJuIGJvb2xl YW5fZmFsc2Vfbm9kZTsKICAgICB9CisKKyAgLyogSWYgd2UncmUgY29tcGFyaW5nIHBvaW50 ZXJzIGFuZCBvbmUgb2YgdGhlIHBvaW50ZXJzIGlzCisgICAgIG5vdCBhIHZhbGlkIHBvaW50 ZXIgKHNheSAmTUVNIDxjb25zdCBjaGFyPiBbKHZvaWQgKikiYWEiICsgNEIpCisgICAgIHJl dHVybiB0cnVlIGZvciBFUSBhbmQgZmFsc2UgZm9yIE5FLiAgKi8KKyAgaWYgKChjb2RlID09 IEVRX0VYUFIgfHwgY29kZSA9PSBORV9FWFBSKQorICAgICAgJiYgUE9JTlRFUl9UWVBFX1Ag KHR5cGUpCisgICAgICAmJiBUUkVFX0NPREUgKG9wMSkgPT0gQUREUl9FWFBSCisgICAgICAm JiBUUkVFX0NPREUgKFRSRUVfT1BFUkFORCAob3AxLCAwKSkgPT0gTUVNX1JFRikKKyAgICB7 CisgICAgICB0cmVlIG1lbV9yZWYgPSBUUkVFX09QRVJBTkQgKG9wMSwgMCk7CisgICAgICBp ZiAoVFJFRV9DT0RFIChUUkVFX09QRVJBTkQgKG1lbV9yZWYsIDApKSA9PSBBRERSX0VYUFIp CisJeworCSAgdHJlZSBhZGRyX2V4cHIgPSBUUkVFX09QRVJBTkQgKG1lbV9yZWYsIDApOwor CSAgaWYgKFRSRUVfQ09ERSAoVFJFRV9PUEVSQU5EIChhZGRyX2V4cHIsIDApKSA9PSBTVFJJ TkdfQ1NUKQorCSAgICB7CisJICAgICAgdHJlZSBzdHJpbmcgPSBUUkVFX09QRVJBTkQgKGFk ZHJfZXhwciwgMCk7CisKKwkgICAgICBpZiAoVFJFRV9DT0RFIChUUkVFX09QRVJBTkQgKG1l bV9yZWYsIDEpKSA9PSBJTlRFR0VSX0NTVCkKKwkJeworCQkgIEhPU1RfV0lERV9JTlQgbGVu ID0gVFJFRV9TVFJJTkdfTEVOR1RIIChzdHJpbmcpOworCQkgIEhPU1RfV0lERV9JTlQgb2Zm c2V0ID0gdHJlZV90b191aHdpIChUUkVFX09QRVJBTkQgKG1lbV9yZWYsIDEpKTsKKwkJICBp ZiAob2Zmc2V0ID4gbGVuKQorCQkgICAgcmV0dXJuIGNvZGUgPT0gRVFfRVhQUiA/IGJvb2xl YW5fZmFsc2Vfbm9kZSA6IGJvb2xlYW5fdHJ1ZV9ub2RlOworCQl9CisJICAgIH0KKwl9Cisg ICAgfQorCiAgIHJldHVybiBOVUxMOwogfQogCg== --------------0q047wP5YRr7WIVfgwqZ10G5--