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 41C033858033 for ; Tue, 1 Feb 2022 14:45:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 41C033858033 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 211DIlat015165; Tue, 1 Feb 2022 14:45:11 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com with ESMTP id 3dxkthpyka-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 01 Feb 2022 14:45:11 +0000 Received: from m0098416.ppops.net (m0098416.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 211E6sDa024871; Tue, 1 Feb 2022 14:45:10 GMT Received: from ppma03ams.nl.ibm.com (62.31.33a9.ip4.static.sl-reverse.com [169.51.49.98]) by mx0b-001b2d01.pphosted.com with ESMTP id 3dxkthpyjh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 01 Feb 2022 14:45:10 +0000 Received: from pps.filterd (ppma03ams.nl.ibm.com [127.0.0.1]) by ppma03ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 211EghNI031140; Tue, 1 Feb 2022 14:45:09 GMT Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by ppma03ams.nl.ibm.com with ESMTP id 3dvw79ney9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 01 Feb 2022 14:45:08 +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 211Ej5hj36503956 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 1 Feb 2022 14:45:06 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D9DE8A4055; Tue, 1 Feb 2022 14:45:05 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9E8EBA4040; Tue, 1 Feb 2022 14:45:05 +0000 (GMT) Received: from [9.171.40.238] (unknown [9.171.40.238]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Tue, 1 Feb 2022 14:45:05 +0000 (GMT) Content-Type: multipart/mixed; boundary="------------p25giKpdI2nMa1Agt5QiREed" Message-ID: <35755ec2-0612-0d94-c2d5-d2527c384c3b@linux.ibm.com> Date: Tue, 1 Feb 2022 15:45:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Content-Language: en-US From: Robin Dapp Subject: ifcvt: Fix PR104153 and PR104198 To: GCC Patches , Jeff Law Cc: Richard Sandiford , ro@CeBiTec.Uni-Bielefeld.DE X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 1t_8pTrzKHQBkIBB73_Uy633Wi3MwIjI X-Proofpoint-GUID: GK2blqlhWraKh6jAIRIfSmR7P3b3uM-r X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-02-01_07,2022-02-01_01,2021-12-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 mlxlogscore=999 clxscore=1011 phishscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 bulkscore=0 mlxscore=0 impostorscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202010078 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: Tue, 01 Feb 2022 14:45:16 -0000 This is a multi-part message in MIME format. --------------p25giKpdI2nMa1Agt5QiREed Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, this is a bugfix for aa8cfe785953a0e87d2472311e1260cd98c605c0 which broke an or1k test case (PR104153) as well as SPARC bootstrap (PR104198). cond_exec_get_condition () returns the jump condition directly and we now it to the backend. The or1k backend modified the condition in-place but this modification is not reverted when the sequence in question is discarded. Therefore this patch copies the RTX instead of using it directly. The SPARC problem is due to the backend recreating the initial condition when being passed a CC comparison. This causes the sequence to read from an already overwritten condition operand. Generally, this could also happen on other targets. The workaround is to always first emit to a temporary. In a second run of noce_convert_multiple_1 we know which sequences actually require the comparison and use no temporaries if all sequences after the current one do not require it. Before, I used reg_overlap_mentioned_p () to check the generated instructions against the condition. The problem with this is that reg_overlap... only handles a set of rtx_codes while a backend can theoretically emit everything in an expander. Is reg_mentioned_p () the "right thing" to do? Maybe it is overly conservative but as soon as we have more than let's say three insns, we are unlikely to succeed anyway. Bootstrapped and reg-tested on s390x, Power 9, x86 and SPARC. Regards Robin -- PR 104198 PR 104153 gcc/ChangeLog: * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of using it directly. Rework comparison handling and always perform a second pass. gcc/testsuite/ChangeLog: * gcc.dg/pr104198.c: New test. --------------p25giKpdI2nMa1Agt5QiREed Content-Type: text/x-patch; charset=UTF-8; name="ifcvt-pr.patch" Content-Disposition: attachment; filename="ifcvt-pr.patch" Content-Transfer-Encoding: base64 Y29tbWl0IDY4NDg5ZDU3MjliNDg3OWJmMmRmNTQwNzUzZmM3ZWE4YmExNTY1YTUKQXV0aG9y OiBSb2JpbiBEYXBwIDxyZGFwcEBsaW51eC5pYm0uY29tPgpEYXRlOiAgIE1vbiBKYW4gMjQg MTA6Mjg6MDUgMjAyMiArMDEwMAoKICAgIGlmY3Z0OiBGaXggUFIxMDQxNTMgYW5kIFBSMTA0 MTk4LgogICAgCiAgICBUaGlzIGlzIGEgYnVnZml4IGZvciBhYThjZmU3ODU5NTNhMGU4N2Qy NDcyMzExZTEyNjBjZDk4YzYwNWMwIHdoaWNoCiAgICBicm9rZSBhbiBvcjFrIHRlc3QgY2Fz ZSAoUFIxMDQxNTMpIGFzIHdlbGwgYXMgU1BBUkMgYm9vdHN0cmFwIChQUjEwNDE5OCkuCiAg ICAKICAgIGNvbmRfZXhlY19nZXRfY29uZGl0aW9uICgpIHJldHVybnMgdGhlIGp1bXAgY29u ZGl0aW9uIGRpcmVjdGx5IGFuZCB3ZSBub3cKICAgIHBhc3MgaXQgdG8gdGhlIGJhY2tlbmQu ICBUaGUgb3IxayBiYWNrZW5kIG1vZGlmaWVkIHRoZSBjb25kaXRpb24gaW4tcGxhY2UKICAg IChvdGhlciBiYWNrZW5kcyBkbyB0aGF0IGFzIHdlbGwpIGJ1dCB0aGlzIG1vZGlmaWNhdGlv biBpcyBub3QgcmV2ZXJ0ZWQKICAgIHdoZW4gdGhlIHNlcXVlbmNlIGluIHF1ZXN0aW9uIGlz IGRpc2NhcmRlZC4gIFRoZXJlZm9yZSB3ZSBjb3B5IHRoZSBSVFgKICAgIGluc3RlYWQgb2Yg dXNpbmcgaXQgZGlyZWN0bHkuCiAgICAKICAgIFRoZSBTUEFSQyBwcm9ibGVtIGlzIGR1ZSB0 byB0aGUgU1BBUkMgYmFja2VuZCByZWNyZWF0aW5nIHRoZSBpbml0aWFsCiAgICBjb25kaXRp b24gd2hlbiBiZWluZyBwYXNzZWQgYSBDQyBjb21wYXJpc29uLiAgVGhpcyBjYXVzZXMgdGhl IHNlcXVlbmNlCiAgICB0byByZWFkIGZyb20gYW4gYWxyZWFkeSBvdmVyd3JpdHRlbiBjb25k aXRpb24gb3BlcmFuZC4gIEdlbmVyYWxseSwgdGhpcwogICAgY291bGQgYWxzbyBoYXBwZW4g b24gb3RoZXIgdGFyZ2V0cy4gIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGFsd2F5cyBmaXJzdAog ICAgZW1pdCB0byBhIHRlbXBvcmFyeS4gIEluIGEgc2Vjb25kIHJ1biBvZiBub2NlX2NvbnZl cnRfbXVsdGlwbGVfMSB3ZSBrbm93CiAgICB3aGljaCBzZXF1ZW5jZXMgYWN0dWFsbHkgcmVx dWlyZSB0aGUgY29tcGFyaXNvbiBhbmQgd2lsbCB1c2Ugbm8KICAgIHRlbXBvcmFyaWVzIGlm IGFsbCBzZXF1ZW5jZXMgYWZ0ZXIgdGhlIGN1cnJlbnQgb25lIGRvIG5vdCByZXF1aXJlIGl0 LgoKZGlmZiAtLWdpdCBhL2djYy9pZmN2dC5jYyBiL2djYy9pZmN2dC5jYwppbmRleCBmZTI1 MGQ1MDhlMS4uOTJjMmI0MGE0NWEgMTAwNjQ0Ci0tLSBhL2djYy9pZmN2dC5jYworKysgYi9n Y2MvaWZjdnQuY2MKQEAgLTMzOTEsNyArMzM5MSwxMSBAQCBub2NlX2NvbnZlcnRfbXVsdGlw bGVfc2V0c18xIChzdHJ1Y3Qgbm9jZV9pZl9pbmZvICppZl9pbmZvLAogICBydHggY29uZCA9 IG5vY2VfZ2V0X2NvbmRpdGlvbiAoanVtcCwgJmNvbmRfZWFybGllc3QsIGZhbHNlKTsKIAog ICBydHggY2NfY21wID0gY29uZF9leGVjX2dldF9jb25kaXRpb24gKGp1bXApOworICBpZiAo Y2NfY21wKQorICAgIGNjX2NtcCA9IGNvcHlfcnR4IChjY19jbXApOwogICBydHggcmV2X2Nj X2NtcCA9IGNvbmRfZXhlY19nZXRfY29uZGl0aW9uIChqdW1wLCAvKiBnZXRfcmV2ZXJzZWQg Ki8gdHJ1ZSk7CisgIGlmIChyZXZfY2NfY21wKQorICAgIHJldl9jY19jbXAgPSBjb3B5X3J0 eCAocmV2X2NjX2NtcCk7CiAKICAgcnR4X2luc24gKmluc247CiAgIGludCBjb3VudCA9IDA7 CkBAIC0zNTE1LDYgKzM1MTksNyBAQCBub2NlX2NvbnZlcnRfbXVsdGlwbGVfc2V0c18xIChz dHJ1Y3Qgbm9jZV9pZl9pbmZvICppZl9pbmZvLAogICAgICAgdW5zaWduZWQgY29zdDEgPSAw LCBjb3N0MiA9IDA7CiAgICAgICBydHhfaW5zbiAqc2VxLCAqc2VxMSwgKnNlcTI7CiAgICAg ICBydHggdGVtcF9kZXN0ID0gTlVMTF9SVFgsIHRlbXBfZGVzdDEgPSBOVUxMX1JUWCwgdGVt cF9kZXN0MiA9IE5VTExfUlRYOworICAgICAgYm9vbCByZWFkX2NvbXBhcmlzb24gPSBmYWxz ZTsKIAogICAgICAgc2VxMSA9IHRyeV9lbWl0X2Ntb3ZlX3NlcSAoaWZfaW5mbywgdGVtcCwg Y29uZCwKIAkJCQkgbmV3X3ZhbCwgb2xkX3ZhbCwgbmVlZF9jbW92LApAQCAtMzUyNCwxMCAr MzUyOSwzOCBAQCBub2NlX2NvbnZlcnRfbXVsdGlwbGVfc2V0c18xIChzdHJ1Y3Qgbm9jZV9p Zl9pbmZvICppZl9pbmZvLAogCSBhcyB3ZWxsLiAgVGhpcyBhbGxvd3MgdGhlIGJhY2tlbmQg dG8gZW1pdCBhIGNtb3YgZGlyZWN0bHkgd2l0aG91dAogCSBjcmVhdGluZyBhbiBhZGRpdGlv bmFsIGNvbXBhcmUgZm9yIGVhY2guICBJZiBzdWNjZXNzZnVsLCBjb3N0aW5nCiAJIGlzIGVh c2llciBhbmQgdGhpcyBzZXF1ZW5jZSBpcyB1c3VhbGx5IHByZWZlcnJlZC4gICovCi0gICAg ICBzZXEyID0gdHJ5X2VtaXRfY21vdmVfc2VxIChpZl9pbmZvLCB0YXJnZXQsIGNvbmQsCisg ICAgICBzZXEyID0gdHJ5X2VtaXRfY21vdmVfc2VxIChpZl9pbmZvLCB0ZW1wLCBjb25kLAog CQkJCSBuZXdfdmFsLCBvbGRfdmFsLCBuZWVkX2Ntb3YsCiAJCQkJICZjb3N0MiwgJnRlbXBf ZGVzdDIsIGNjX2NtcCwgcmV2X2NjX2NtcCk7CiAKKyAgICAgIC8qIFRoZSBiYWNrZW5kIG1p Z2h0IGhhdmUgY3JlYXRlZCBhIHNlcXVlbmNlIHRoYXQgdXNlcyB0aGUKKwkgY29uZGl0aW9u LiAgQ2hlY2sgdGhpcy4gICovCisgICAgICBydHhfaW5zbiAqd2FsayA9IHNlcTI7CisgICAg ICB3aGlsZSAod2FsaykKKwl7CisJICBydHggc2V0ID0gc2luZ2xlX3NldCAod2Fsayk7CisK KwkgIGlmICghc2V0IHx8ICFTRVRfU1JDIChzZXQpKSB7CisJICAgICAgd2FsayA9IE5FWFRf SU5TTiAod2Fsayk7CisJICAgICAgY29udGludWU7CisJICB9CisKKwkgIHJ0eCBzcmMgPSBT RVRfU1JDIChzZXQpOworCisJICBpZiAoWEVYUCAoc2V0LCAxKSAmJiBHRVRfQ09ERSAoWEVY UCAoc2V0LCAxKSkgPT0gSUZfVEhFTl9FTFNFKQorCSAgICA7CisJICBlbHNlCisJICAgIHsK KwkgICAgICBpZiAocmVnX21lbnRpb25lZF9wIChYRVhQIChjb25kLCAwKSwgc3JjKQorCQkg IHx8IHJlZ19tZW50aW9uZWRfcCAoWEVYUCAoY29uZCwgMSksIHNyYykpCisJCXsKKwkJICBy ZWFkX2NvbXBhcmlzb24gPSB0cnVlOworCQkgIGJyZWFrOworCQl9CisJICAgIH0KKwkgIHdh bGsgPSBORVhUX0lOU04gKHdhbGspOworCX0KKwogICAgICAgLyogQ2hlY2sgd2hpY2ggdmVy c2lvbiBpcyBsZXNzIGV4cGVuc2l2ZS4gICovCiAgICAgICBpZiAoc2VxMSAhPSBOVUxMX1JU WCAmJiAoY29zdDEgPD0gY29zdDIgfHwgc2VxMiA9PSBOVUxMX1JUWCkpCiAJewpAQCAtMzU0 MCw2ICszNTczLDggQEAgbm9jZV9jb252ZXJ0X211bHRpcGxlX3NldHNfMSAoc3RydWN0IG5v Y2VfaWZfaW5mbyAqaWZfaW5mbywKIAl7CiAJICBzZXEgPSBzZXEyOwogCSAgdGVtcF9kZXN0 ID0gdGVtcF9kZXN0MjsKKwkgIGlmICghc2Vjb25kX3RyeSAmJiByZWFkX2NvbXBhcmlzb24p CisJICAgICpsYXN0X25lZWRzX2NvbXBhcmlzb24gPSBjb3VudDsKIAl9CiAgICAgICBlbHNl CiAJewpAQCAtMzU1OCw2ICszNTkzLDEyIEBAIG5vY2VfY29udmVydF9tdWx0aXBsZV9zZXRz XzEgKHN0cnVjdCBub2NlX2lmX2luZm8gKmlmX2luZm8sCiAgICAgICB1bm1vZGlmaWVkX2lu c25zLT5zYWZlX3B1c2ggKGluc24pOwogICAgIH0KIAorICAvKiBFdmVuIGlmIHdlIGRpZCBu b3QgYWN0dWFsbHkgbmVlZCB0aGUgY29tcGFyaXNvbiwgd2Ugd2FudCB0byBtYWtlIHN1cmUK KyAgICAgdG8gdHJ5IGEgc2Vjb25kIHRpbWUgaW4gb3JkZXIgdG8gZ2V0IHJpZCBvZiB0aGUg dGVtcG9yYXJpZXMuICAqLworICBpZiAoKmxhc3RfbmVlZHNfY29tcGFyaXNvbiA9PSAtMSkK KyAgICAqbGFzdF9uZWVkc19jb21wYXJpc29uID0gMDsKKworCiAgIHJldHVybiB0cnVlOwog fQogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjEwNDE5OC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMDQxOTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uYmZjN2E3NzcxODQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9wcjEwNDE5OC5jCkBAIC0wLDAgKzEsMzYgQEAKKy8qIE1ha2Ugc3Vy ZSBpZiBjb252ZXJzaW9uIGZvciB0d28gaW5zdHJ1Y3Rpb25zIGRvZXMgbm90IGJyZWFrCisg ICBhbnl0aGluZyAoaWYgaXQgcnVucykuICAqLworCisvKiB7IGRnLWRvIHJ1biB9ICovCisv KiB7IGRnLW9wdGlvbnMgIi1PMiAtc3RkPWM5OSIgfSAqLworCisjaW5jbHVkZSA8bGltaXRz Lmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK19fYXR0cmlidXRlX18gKChub2lubGluZSkp CitpbnQgZm9vIChpbnQgKmEsIGludCBuKQoreworICBpbnQgbWluID0gOTk5OTk5OworICBp bnQgYmxhID0gMDsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCisgICAgeworICAg ICAgaWYgKGFbaV0gPCBtaW4pCisJeworCSAgbWluID0gYVtpXTsKKwkgIGJsYSA9IDE7CisJ fQorICAgIH0KKworICBpZiAoYmxhKQorICAgIG1pbiArPSAxOworICByZXR1cm4gbWluOwor fQorCitpbnQgbWFpbigpCit7CisgIGludCBhW10gPSB7MiwgMSwgLTEzLCBJTlRfTUFYLCBJ TlRfTUlOLCAwfTsKKworICBpbnQgcmVzID0gZm9vIChhLCBzaXplb2YgKGEpIC8gc2l6ZW9m IChhWzBdKSk7CisKKyAgYXNzZXJ0IChyZXMgPT0gKElOVF9NSU4gKyAxKSk7Cit9Cg== --------------p25giKpdI2nMa1Agt5QiREed--