From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id C52CC385829C for ; Fri, 9 Sep 2022 06:51:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C52CC385829C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com Received: from pps.filterd (m0098419.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2896QH6l020535; Fri, 9 Sep 2022 06:51:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=content-type : message-id : date : mime-version : subject : to : cc : references : from : in-reply-to; s=pp1; bh=KqxrIHFo6It7WgdT5BKy3HwPN7fXCfy5hVpeY7sKLEk=; b=rsTe9ACLG927ywJM+LF/LEdDCr/jWJV0DIuLL7lfNKP7DEXs0V8yk0xeeasOaLqPKGHm lINOsr5837NN8bIWA0NrlGb7XVEg93H7ZdlIN1S88/+4+555YYvcqjWGLxVNWoB/J2pi C7izVzafBt8OKySzzK6IAgnLnFqmblXXK5VJh8tWj0oVA7z/Rtf6flByF9tPAIhrUmaU vPJysgcqv1HfP94XS7hiBptd5FF2JpFBXqvzUxLqbIVTPQHQpHK4aya7devVR2XHaWVU rh8PJGYqHkeCTomaWw45JbQGQsr1dIFR06yMXR4QPMVCSzbtlWw3kpmtztGZNaTNdqsu zw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3jg07egpm7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Sep 2022 06:51:22 +0000 Received: from m0098419.ppops.net (m0098419.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 2896RpT9027433; Fri, 9 Sep 2022 06:51:22 GMT Received: from ppma05fra.de.ibm.com (6c.4a.5195.ip4.static.sl-reverse.com [149.81.74.108]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3jg07egpkm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Sep 2022 06:51:22 +0000 Received: from pps.filterd (ppma05fra.de.ibm.com [127.0.0.1]) by ppma05fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 2896pKca012354; Fri, 9 Sep 2022 06:51:20 GMT Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by ppma05fra.de.ibm.com with ESMTP id 3jbxj8wkh0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Sep 2022 06:51:20 +0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 2896pHfa30933268 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 9 Sep 2022 06:51:18 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D5FB4A4040; Fri, 9 Sep 2022 06:51:17 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2E547A4059; Fri, 9 Sep 2022 06:51:16 +0000 (GMT) Received: from [9.197.248.186] (unknown [9.197.248.186]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 9 Sep 2022 06:51:15 +0000 (GMT) Content-Type: multipart/mixed; boundary="------------elCUXTJiq4dfFCuj7l90xpNG" Message-ID: <302a193a-2751-a404-31c6-f5b4a3e6856a@linux.ibm.com> Date: Fri, 9 Sep 2022 14:51:14 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: [PATCH v2] Handle OPAQUE_TYPE specially in verify_type [PR106833] Content-Language: en-US To: Richard Biener Cc: GCC Patches , Segher Boessenkool , Peter Bergner References: From: "Kewen.Lin" In-Reply-To: X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: UiOAZUambBmLP5m4g-uK6ds_-8HJVz37 X-Proofpoint-GUID: dNGTz7ceaQb8rzr7-lMWk57utBZ7GU5Y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-09_02,2022-09-09_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 phishscore=0 impostorscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 lowpriorityscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2209090021 X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,IMAGE_ATTACHED,KAM_SHORT,RCVD_IN_MSPIKE_H2,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. --------------elCUXTJiq4dfFCuj7l90xpNG Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi Richi, Thanks for the review comments! on 2022/9/8 15:36, Richard Biener wrote: > > >> Am 08.09.2022 um 07:53 schrieb Kewen.Lin : >> >> Hi, >> >> As PR106833 shows, cv-qualified opaque type can cause ICE >> during LTO. It exposes that we missd to handle OPAQUE_TYPE >> well in type verification. As Richi pointed out, also >> assuming that target will always define TYPE_MAIN_VARIANT >> and TYPE_CANONICAL for opaque type, this patch is to check >> both are OPAQUE_TYPE_P. Besides, it also checks the only >> available size and alignment information as well as type >> mode for TYPE_MAIN_VARIANT. >> ... >> + >> + if (t != tv) >> + { >> + verify_match (TREE_CODE, t, tv); >> + verify_match (TYPE_MODE, t, tv); >> + verify_match (TYPE_SIZE, t, tv); > > TYPE_SIZE is a tree, you should probably > Compare this with operand_equal_p. It’s > Not documented to be a constant size? > Thus some VLA vector mode might be allowed ( a poly_int size), Thanks for catching, I was referencing the code in function verify_type_variant, that corresponding part seems imperfect: if (TREE_CODE (TYPE_SIZE (t)) != PLACEHOLDER_EXPR && TREE_CODE (TYPE_SIZE (tv)) != PLACEHOLDER_EXPR) verify_variant_match (TYPE_SIZE); I agree poly_int size is allowed, the patch was updated for it. BLKmode > Is ruled out(?), Yes, it requires a mode of MODE_OPAQUE class. the docs say we have > ‚An MODE_Opaque‘ here but I don’t see > This being verified? > There is a MODE equality check, I assumed the given t already has one MODE_OPAQUE mode, but the patch was updated to make it explicit as you concerned. > The macro makes this a bit unworldly > For the only benefit of elaborate diagnostic > Which I think isn’t really necessary OK, fixed! The previous version makes just one check on TYPE_CANONICAL to be cheap as gimple_canonical_types_compatible_p said, but since there are just several fields to be check, this updated version adjusted it to be the same as what's for TYPE_MAIN_VARIANT. Hope it's fine. :) Tested as before. Does this updated patch look good to you? BR, Kewen ------ --------------elCUXTJiq4dfFCuj7l90xpNG Content-Type: text/plain; charset=UTF-8; name="0001-Handle-OPAQUE_TYPE-specially-in-verify_type-PR106833.patch" Content-Disposition: attachment; filename*0="0001-Handle-OPAQUE_TYPE-specially-in-verify_type-PR106833.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0YTkwNWZjYjJhYmNjNGU0ODhkOTAwMTFkZDJjMjEyNWZiOWUxNGIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZXdlbiBMaW4gPGxpbmt3QGxpbnV4LmlibS5jb20+ CkRhdGU6IFRodSwgOCBTZXAgMjAyMiAyMTozNDoyOSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IEhhbmRsZSBPUEFRVUVfVFlQRSBzcGVjaWFsbHkgaW4gdmVyaWZ5X3R5cGUgW1BSMTA2ODMz XQoKQXMgUFIxMDY4MzMgc2hvd3MsIGN2LXF1YWxpZmllZCBvcGFxdWUgdHlwZSBjYW4gY2F1 c2UgSUNFCmR1cmluZyBMVE8uICBJdCBleHBvc2VzIHRoYXQgd2UgbWlzc2QgdG8gaGFuZGxl IE9QQVFVRV9UWVBFCndlbGwgaW4gdHlwZSB2ZXJpZmljYXRpb24uICBBcyBSaWNoaSBwb2lu dGVkIG91dCwgYWxzbwphc3N1bWluZyB0aGF0IHRhcmdldCB3aWxsIGFsd2F5cyBkZWZpbmUg VFlQRV9NQUlOX1ZBUklBTlQKVFlQRV9DQU5PTklDQUwgZm9yIG9wYXF1ZSB0eXBlLCB0aGlz IHBhdGNoIGlzIHRvIGNoZWNrCmJvdGggYXJlIE9QQVFVRV9UWVBFX1AgYW5kIHRoZWlyIG1v ZGVzIGFyZSBvZiBNT0RFX09QQVFVRQpjbGFzcy4gIEJlc2lkZXMsIGl0IGFsc28gY2hlY2tz IHRoZSBvbmx5IGF2YWlsYWJsZSBzaXplCmFuZCBhbGlnbm1lbnQgaW5mb3JtYXRpb24uCgoJ UFIgbWlkZGxlLWVuZC8xMDY4MzMKCmdjYy9DaGFuZ2VMb2c6CgoJKiB0cmVlLmNjICh2ZXJp Znlfb3BhcXVlX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkodmVyaWZ5X3R5cGUpOiBDYWxsIHZl cmlmeV9vcGFxdWVfdHlwZSBmb3IgT1BBUVVFX1RZUEUuCgpnY2MvdGVzdHN1aXRlL0NoYW5n ZUxvZzoKCgkqIGdjYy50YXJnZXQvcG93ZXJwYy9wcjEwNjgzMy5jOiBOZXcgdGVzdC4KLS0t CiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9wcjEwNjgzMy5jIHwgMTQgKysr KwogZ2NjL3RyZWUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDc0ICsr KysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Bvd2VycGMvcHIxMDY4MzMuYwoKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9wb3dlcnBjL3ByMTA2ODMzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcG93ZXJwYy9wcjEwNjgzMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi45NjhkNzUxODRmZgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9wb3dlcnBjL3ByMTA2ODMzLmMKQEAgLTAsMCArMSwxNCBAQAorLyogeyBk Zy1kbyBsaW5rIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHBvd2Vy MTBfb2sgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgbHRvIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLWZsdG8gLW1kZWphZ251LWNwdT1wb3dlcjEwIiB9ICovCisK Ky8qIFZlcmlmeSB0aGVyZSBpcyBubyBJQ0UgaW4gTFRPIG1vZGUuICAqLworCitpbnQgbWFp biAoKQoreworICBmbG9hdCAqYjsKKyAgY29uc3QgX192ZWN0b3JfcXVhZCBjOworICBfX2J1 aWx0aW5fbW1hX2Rpc2Fzc2VtYmxlX2FjYyAoYiwgJmMpOworICByZXR1cm4gMDsKK30KZGlm ZiAtLWdpdCBhL2djYy90cmVlLmNjIGIvZ2NjL3RyZWUuY2MKaW5kZXggZmVkMTQzNGQxNDEu LmI3NTVjZDUwODNhIDEwMDY0NAotLS0gYS9nY2MvdHJlZS5jYworKysgYi9nY2MvdHJlZS5j YwpAQCAtMTM2NzAsNiArMTM2NzAsNzEgQEAgZ2ltcGxlX2Nhbm9uaWNhbF90eXBlc19jb21w YXRpYmxlX3AgKGNvbnN0X3RyZWUgdDEsIGNvbnN0X3RyZWUgdDIsCiAgICAgfQogfQogCisv KiBGb3IgT1BBUVVFX1RZUEUgVCwgaXQgc2hvdWxkIGhhdmUgb25seSBzaXplIGFuZCBhbGln bm1lbnQgaW5mb3JtYXRpb24KKyAgIGFuZCBpdHMgbW9kZSBzaG91bGQgYmUgb2YgY2xhc3Mg TU9ERV9PUEFRVUUuICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzCisgICB0aGVzZSBwcm9wZXJ0 aWVzIG9mIFQgbWF0Y2ggVFYgd2hpY2ggaXMgdGhlIG1haW4gdmFyaWFudCBvZiBUIGFuZCBU QworICAgd2hpY2ggaXMgdGhlIGNhbm9uaWNhbCBvZiBULiAgKi8KKworc3RhdGljIHZvaWQK K3ZlcmlmeV9vcGFxdWVfdHlwZSAoY29uc3RfdHJlZSB0LCB0cmVlIHR2LCB0cmVlIHRjKQor eworICBnY2NfYXNzZXJ0IChPUEFRVUVfVFlQRV9QICh0KSk7CisgIGdjY19hc3NlcnQgKHR2 ICYmIHR2ID09IFRZUEVfTUFJTl9WQVJJQU5UICh0dikpOworICBnY2NfYXNzZXJ0ICh0YyAm JiB0YyA9PSBUWVBFX0NBTk9OSUNBTCAodGMpKTsKKworICAvKiBGb3IgYW4gb3BhcXVlIHR5 cGUgVDEsIGNoZWNrIGlmIHNvbWUgb2YgaXRzIHByb3BlcnRpZXMgbWF0Y2gKKyAgICAgdGhl IGNvcnJlc3BvbmRpbmcgb25lcyBvZiB0aGUgb3RoZXIgb3BhcXVlIHR5cGUgVDIsIGVtaXQg c29tZQorICAgICBlcnJvciBtZXNzYWdlcyBmb3IgdGhvc2UgaW5jb25zaXN0ZW50IG9uZXMu ICAqLworICBhdXRvIGNoZWNrX3Byb3BlcnRpZXNfZm9yX29wYXF1ZV90eXBlID0gW10oY29u c3RfdHJlZSB0MSwgdHJlZSB0MiwKKwkJCQkJICAgICBjb25zdCBjaGFyICpraW5kX21zZykK KyAgeworICAgIGlmICghT1BBUVVFX1RZUEVfUCAodDIpKQorICAgICAgeworCWVycm9yICgi dHlwZSAlcyBpcyBub3QgYW4gb3BhcXVlIHR5cGUiLCBraW5kX21zZyk7CisJZGVidWdfdHJl ZSAodDIpOworCXJldHVybjsKKyAgICAgIH0KKyAgICBpZiAoIU9QQVFVRV9NT0RFX1AgKFRZ UEVfTU9ERSAodDIpKSkKKyAgICAgIHsKKwllcnJvciAoInR5cGUgJXMgaXMgbm90IHdpdGgg b3BhcXVlIG1vZGUiLCBraW5kX21zZyk7CisJZGVidWdfdHJlZSAodDIpOworCXJldHVybjsK KyAgICAgIH0KKyAgICBpZiAoVFlQRV9NT0RFICh0MSkgIT0gVFlQRV9NT0RFICh0MikpCisg ICAgICB7CisJZXJyb3IgKCJ0eXBlICVzIGRpZmZlcnMgYnkgJTxUWVBFX01PREUlPiIsIGtp bmRfbXNnKTsKKwlkZWJ1Z190cmVlICh0Mik7CisJcmV0dXJuOworICAgICAgfQorICAgIHBv bHlfdWludDY0IHQxX3NpemUgPSB0cmVlX3RvX3BvbHlfdWludDY0IChUWVBFX1NJWkUgKHQx KSk7CisgICAgcG9seV91aW50NjQgdDJfc2l6ZSA9IHRyZWVfdG9fcG9seV91aW50NjQgKFRZ UEVfU0laRSAodDIpKTsKKyAgICBpZiAobWF5YmVfbmUgKHQxX3NpemUsIHQyX3NpemUpKQor ICAgICAgeworCWVycm9yICgidHlwZSAlcyBkaWZmZXJzIGJ5ICU8VFlQRV9TSVpFJT4iLCBr aW5kX21zZyk7CisJZGVidWdfdHJlZSAodDIpOworCXJldHVybjsKKyAgICAgIH0KKyAgICBp ZiAoVFlQRV9BTElHTiAodDEpICE9IFRZUEVfQUxJR04gKHQyKSkKKyAgICAgIHsKKwllcnJv ciAoInR5cGUgJXMgZGlmZmVycyBieSAlPFRZUEVfQUxJR04lPiIsIGtpbmRfbXNnKTsKKwlk ZWJ1Z190cmVlICh0Mik7CisJcmV0dXJuOworICAgICAgfQorICAgIGlmIChUWVBFX1VTRVJf QUxJR04gKHQxKSAhPSBUWVBFX1VTRVJfQUxJR04gKHQyKSkKKyAgICAgIHsKKwllcnJvciAo InR5cGUgJXMgZGlmZmVycyBieSAlPFRZUEVfVVNFUl9BTElHTiU+Iiwga2luZF9tc2cpOwor CWRlYnVnX3RyZWUgKHQyKTsKKwlyZXR1cm47CisgICAgICB9CisgIH07CisKKyAgaWYgKHQg IT0gdHYpCisgICAgY2hlY2tfcHJvcGVydGllc19mb3Jfb3BhcXVlX3R5cGUgKHQsIHR2LCAi dmFyaWFudCIpOworCisgIGlmICh0ICE9IHRjKQorICAgIGNoZWNrX3Byb3BlcnRpZXNfZm9y X29wYXF1ZV90eXBlICh0LCB0YywgImNhbm9uaWNhbCIpOworfQorCiAvKiBWZXJpZnkgdHlw ZSBULiAgKi8KIAogdm9pZApAQCAtMTM2NzcsNiArMTM3NDIsMTQgQEAgdmVyaWZ5X3R5cGUg KGNvbnN0X3RyZWUgdCkKIHsKICAgYm9vbCBlcnJvcl9mb3VuZCA9IGZhbHNlOwogICB0cmVl IG12ID0gVFlQRV9NQUlOX1ZBUklBTlQgKHQpOworICB0cmVlIGN0ID0gVFlQRV9DQU5PTklD QUwgKHQpOworCisgIGlmIChPUEFRVUVfVFlQRV9QICh0KSkKKyAgICB7CisgICAgICB2ZXJp Znlfb3BhcXVlX3R5cGUgKHQsIG12LCBjdCk7CisgICAgICByZXR1cm47CisgICAgfQorCiAg IGlmICghbXYpCiAgICAgewogICAgICAgZXJyb3IgKCJtYWluIHZhcmlhbnQgaXMgbm90IGRl ZmluZWQiKTsKQEAgLTEzNjkxLDcgKzEzNzY0LDYgQEAgdmVyaWZ5X3R5cGUgKGNvbnN0X3Ry ZWUgdCkKICAgZWxzZSBpZiAodCAhPSBtdiAmJiAhdmVyaWZ5X3R5cGVfdmFyaWFudCAodCwg bXYpKQogICAgIGVycm9yX2ZvdW5kID0gdHJ1ZTsKIAotICB0cmVlIGN0ID0gVFlQRV9DQU5P TklDQUwgKHQpOwogICBpZiAoIWN0KQogICAgIDsKICAgZWxzZSBpZiAoVFlQRV9DQU5PTklD QUwgKGN0KSAhPSBjdCkKLS0gCjIuMjcuMAoK --------------elCUXTJiq4dfFCuj7l90xpNG--