From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 903913858295 for ; Tue, 18 Oct 2022 08:35:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 903913858295 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6C708113E; Tue, 18 Oct 2022 01:35:27 -0700 (PDT) Received: from [10.57.5.230] (unknown [10.57.5.230]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 81B5E3F7D8; Tue, 18 Oct 2022 01:35:20 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------UnFYkpPLj6Yyvy7WWJXZ5PMw" Message-ID: <0888cc2d-2040-52c3-1201-16400567300b@arm.com> Date: Tue, 18 Oct 2022 09:35:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Content-Language: en-US To: "gcc-patches@gcc.gnu.org" Cc: Richard Sandiford , Richard Biener , Jeff Law From: "Andre Vieira (lists)" Subject: [PATCH] ifcvt: Do not lower bitfields if we can't analyze dr's [PR107275] X-Spam-Status: No, score=-20.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,TXREP 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. --------------UnFYkpPLj6Yyvy7WWJXZ5PMw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit The ifcvt dead code elimination code was not built to deal with inline assembly, as loops with such would never be if-converted in the past since we can't do data-reference analysis on them and vectorization would eventually fail. For this reason we now also do not lower bitfields if the data-reference analysis fails, as we would not end up vectorizing it.  As a consequence this also fixes this PR as the dead code elimination will not run for such cases and wrongfully eliminate inline assembly statements. Bootstrapped and regression tested on aarch64-none-linux-gnu and x86_64-pc-linux-gnu. gcc/ChangeLog:     PR tree-optimization/107275     * tree-if-conv.cc (if_convertible_loop_p_1): Move     find_data_references_in_loop call from here...     (if_convertible_loop_p): And move data-reference vector initialization     from here...     (tree_if_conversion):... to here. gcc/testsuite/ChangeLog:     * gcc.dg/vect/pr107275.c: New test. --------------UnFYkpPLj6Yyvy7WWJXZ5PMw Content-Type: text/plain; charset=UTF-8; name="pr107275.patch" Content-Disposition: attachment; filename="pr107275.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvcHIxMDcyNzUuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvcHIxMDcyNzUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjMy N2M0NmFkZDdmNzRkZDM2YzFhNjM2YzBmYjljODRkNTIzMmM4Ci0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9wcjEwNzI3NS5jCkBAIC0wLDAgKzEsMTUg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCitzdHJ1Y3Qgc3QKK3sKKyAgaW50IGEgOiAx OworfTsKKwordm9pZAorZm9vIChzdHJ1Y3Qgc3QgKnMsIGludCBuKQoreworICBmb3IgKGlu dCBpID0gMDsgaSA8IG47ICsraSkKKyAgICB7CisgICAgICBzW2ldLmEgPSBpOworICAgICAg X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiOjo6Im1lbW9yeSIpOworICAgIH0KK30KZGlmZiAt LWdpdCBhL2djYy90cmVlLWlmLWNvbnYuY2MgYi9nY2MvdHJlZS1pZi1jb252LmNjCmluZGV4 IDAxNjM3YzVkYTA4ZDVhMmEwMGE0OTU1MjJmYzlhNjQzNmE4MDQzOTguLmE4M2IwMTNkMmFk M2Q5MDY2YjFjMmJjNjIyODJlYzA1NDQ4MzU5OGYgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLWlm LWNvbnYuY2MKKysrIGIvZ2NjL3RyZWUtaWYtY29udi5jYwpAQCAtMTQxNiw5ICsxNDE2LDYg QEAgaWZfY29udmVydGlibGVfbG9vcF9wXzEgKGNsYXNzIGxvb3AgKmxvb3AsIHZlYzxkYXRh X3JlZmVyZW5jZV9wPiAqcmVmcykKICAgYmFzaWNfYmxvY2sgZXhpdF9iYiA9IE5VTEw7CiAg IHZlYzxiYXNpY19ibG9jaz4gcmVnaW9uOwogCi0gIGlmIChmaW5kX2RhdGFfcmVmZXJlbmNl c19pbl9sb29wIChsb29wLCByZWZzKSA9PSBjaHJlY19kb250X2tub3cpCi0gICAgcmV0dXJu IGZhbHNlOwotCiAgIGNhbGN1bGF0ZV9kb21pbmFuY2VfaW5mbyAoQ0RJX0RPTUlOQVRPUlMp OwogCiAgIGZvciAoaSA9IDA7IGkgPCBsb29wLT5udW1fbm9kZXM7IGkrKykKQEAgLTE1NDEs MTIgKzE1MzgsMTEgQEAgaWZfY29udmVydGlibGVfbG9vcF9wXzEgKGNsYXNzIGxvb3AgKmxv b3AsIHZlYzxkYXRhX3JlZmVyZW5jZV9wPiAqcmVmcykKICAgIC0gaWYgaXRzIGJhc2ljIGJs b2NrcyBhbmQgcGhpIG5vZGVzIGFyZSBpZiBjb252ZXJ0aWJsZS4gICovCiAKIHN0YXRpYyBi b29sCi1pZl9jb252ZXJ0aWJsZV9sb29wX3AgKGNsYXNzIGxvb3AgKmxvb3ApCitpZl9jb252 ZXJ0aWJsZV9sb29wX3AgKGNsYXNzIGxvb3AgKmxvb3AsIHZlYzxkYXRhX3JlZmVyZW5jZV9w PiAqcmVmcykKIHsKICAgZWRnZSBlOwogICBlZGdlX2l0ZXJhdG9yIGVpOwogICBib29sIHJl cyA9IGZhbHNlOwotICB2ZWM8ZGF0YV9yZWZlcmVuY2VfcD4gcmVmczsKIAogICAvKiBIYW5k bGUgb25seSBpbm5lcm1vc3QgbG9vcC4gICovCiAgIGlmICghbG9vcCB8fCBsb29wLT5pbm5l cikKQEAgLTE1NzgsMTUgKzE1NzQsNyBAQCBpZl9jb252ZXJ0aWJsZV9sb29wX3AgKGNsYXNz IGxvb3AgKmxvb3ApCiAgICAgaWYgKGxvb3BfZXhpdF9lZGdlX3AgKGxvb3AsIGUpKQogICAg ICAgcmV0dXJuIGZhbHNlOwogCi0gIHJlZnMuY3JlYXRlICg1KTsKLSAgcmVzID0gaWZfY29u dmVydGlibGVfbG9vcF9wXzEgKGxvb3AsICZyZWZzKTsKLQotICBkYXRhX3JlZmVyZW5jZV9w IGRyOwotICB1bnNpZ25lZCBpbnQgaTsKLSAgZm9yIChpID0gMDsgcmVmcy5pdGVyYXRlIChp LCAmZHIpOyBpKyspCi0gICAgZnJlZSAoZHItPmF1eCk7Ci0KLSAgZnJlZV9kYXRhX3JlZnMg KHJlZnMpOworICByZXMgPSBpZl9jb252ZXJ0aWJsZV9sb29wX3BfMSAobG9vcCwgcmVmcyk7 CiAKICAgZGVsZXRlIGlubmVybW9zdF9EUl9tYXA7CiAgIGlubmVybW9zdF9EUl9tYXAgPSBO VUxMOwpAQCAtMzQ5OSw2ICszNDg3LDcgQEAgdHJlZV9pZl9jb252ZXJzaW9uIChjbGFzcyBs b29wICpsb29wLCB2ZWM8Z2ltcGxlICo+ICpwcmVkcykKICAgYXV0b192ZWMgPGdhc3NpZ24g KiwgND4gd3JpdGVzX3RvX2xvd2VyOwogICBiaXRtYXAgZXhpdF9iYnM7CiAgIGVkZ2UgcGU7 CisgIHZlYzxkYXRhX3JlZmVyZW5jZV9wPiByZWZzOwogCiAgYWdhaW46CiAgIHJsb29wID0g TlVMTDsKQEAgLTM1MDgsNiArMzQ5Nyw3IEBAIHRyZWVfaWZfY29udmVyc2lvbiAoY2xhc3Mg bG9vcCAqbG9vcCwgdmVjPGdpbXBsZSAqPiAqcHJlZHMpCiAgIG5lZWRfdG9fcHJlZGljYXRl ID0gZmFsc2U7CiAgIG5lZWRfdG9fcmV3cml0ZV91bmRlZmluZWQgPSBmYWxzZTsKICAgYW55 X2NvbXBsaWNhdGVkX3BoaSA9IGZhbHNlOworICByZWZzLmNyZWF0ZSAoNSk7CiAKICAgLyog QXBwbHkgbW9yZSBhZ2dyZXNzaXZlIGlmLWNvbnZlcnNpb24gd2hlbiBsb29wIG9yIGl0cyBv dXRlciBsb29wIHdlcmUKICAgICAgbWFya2VkIHdpdGggc2ltZCBwcmFnbWEuICBXaGVuIHRo YXQncyB0aGUgY2FzZSwgd2UgdHJ5IHRvIGlmLWNvbnZlcnQKQEAgLTM1MzcsMTEgKzM1Mjcs MTQgQEAgdHJlZV9pZl9jb252ZXJzaW9uIChjbGFzcyBsb29wICpsb29wLCB2ZWM8Z2ltcGxl ICo+ICpwcmVkcykKICAgICAgIGdvdG8gY2xlYW51cDsKICAgICB9CiAKKyAgaWYgKGZpbmRf ZGF0YV9yZWZlcmVuY2VzX2luX2xvb3AgKGxvb3AsICZyZWZzKSA9PSBjaHJlY19kb250X2tu b3cpCisgICAgZ290byBjbGVhbnVwOworCiAgIGlmIChsb29wLT5udW1fbm9kZXMgPiAyKQog ICAgIHsKICAgICAgIG5lZWRfdG9faWZjdnQgPSB0cnVlOwogCi0gICAgICBpZiAoIWlmX2Nv bnZlcnRpYmxlX2xvb3BfcCAobG9vcCkgfHwgIWRiZ19jbnQgKGlmX2NvbnZlcnNpb25fdHJl ZSkpCisgICAgICBpZiAoIWlmX2NvbnZlcnRpYmxlX2xvb3BfcCAobG9vcCwgJnJlZnMpIHx8 ICFkYmdfY250IChpZl9jb252ZXJzaW9uX3RyZWUpKQogCWdvdG8gY2xlYW51cDsKIAogICAg ICAgaWYgKChuZWVkX3RvX3ByZWRpY2F0ZSB8fCBhbnlfY29tcGxpY2F0ZWRfcGhpKQpAQCAt MzY1OCw2ICszNjUxLDEzIEBAIHRyZWVfaWZfY29udmVyc2lvbiAoY2xhc3MgbG9vcCAqbG9v cCwgdmVjPGdpbXBsZSAqPiAqcHJlZHMpCiAgIHRvZG8gfD0gVE9ET19jbGVhbnVwX2NmZzsK IAogIGNsZWFudXA6CisgIGRhdGFfcmVmZXJlbmNlX3AgZHI7CisgIHVuc2lnbmVkIGludCBp OworICBmb3IgKGkgPSAwOyByZWZzLml0ZXJhdGUgKGksICZkcik7IGkrKykKKyAgICBmcmVl IChkci0+YXV4KTsKKworICByZWZzLnRydW5jYXRlICgwKTsKKwogICBpZiAoaWZjX2JicykK ICAgICB7CiAgICAgICB1bnNpZ25lZCBpbnQgaTsK --------------UnFYkpPLj6Yyvy7WWJXZ5PMw--