From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 7A79439484A0 for ; Mon, 31 Jan 2022 16:26:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7A79439484A0 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 40AF81F380; Mon, 31 Jan 2022 16:26:52 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 16C7513C91; Mon, 31 Jan 2022 16:26:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 9NbDA8wN+GHIegAAMHmgww (envelope-from ); Mon, 31 Jan 2022 16:26:52 +0000 Content-Type: multipart/mixed; boundary="------------BycAKCsWDkff0RVqOoGYRcMX" Message-ID: <3b14d728-35d3-251a-44b8-e152b92d5dd5@suse.de> Date: Mon, 31 Jan 2022 17:26:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: [PATCH][ldist] Don't add lib calls with -fno-tree-loop-distribute-patterns Content-Language: en-US To: Richard Biener Cc: Stefan Schulze Frielinghaus , GCC Patches References: <57323305-3384-e128-4627-ad26969a36f3@suse.de> From: Tom de Vries In-Reply-To: X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, 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: Mon, 31 Jan 2022 16:26:55 -0000 This is a multi-part message in MIME format. --------------BycAKCsWDkff0RVqOoGYRcMX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit [ was: Re: [RFC] ldist: Recognize rawmemchr loop patterns ] On 1/31/22 16:00, Richard Biener wrote: >> I'm running into PR56888 ( >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 ) on nvptx due to >> this, f.i. in gcc/testsuite/gcc.c-torture/execute/builtins/strlen.c, >> where gcc/testsuite/gcc.c-torture/execute/builtins/lib/strlen.c contains >> a strlen function, with a strlen loop, which is transformed by >> pass_loop_distribution into a __builtin_strlen, which is then expanded >> into a strlen call, creating a self-recursive function. [ And on nvptx, >> that happens to result in a compilation failure, which is how I found >> this. ] >> >> According to this ( >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888#c21 ) comment: >> ... >> -fno-tree-loop-distribute-patterns is the reliable way to not >> transform loops into library calls. >> ... >> >> Then should we have something along the lines of: >> ... >> $ git diff >> diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c >> index 6fe59cd56855..9a211d30cd7e 100644 >> --- a/gcc/tree-loop-distribution.c >> +++ b/gcc/tree-loop-distribution.c >> @@ -3683,7 +3683,11 @@ loop_distribution::transform_reduction_loop >> && TYPE_PRECISION (ptr_type_node) >= 32) >> || (TYPE_OVERFLOW_UNDEFINED (reduction_var_type) >> && TYPE_PRECISION (reduction_var_type) <= >> TYPE_PRECISION (sizetype))) >> - && builtin_decl_implicit (BUILT_IN_STRLEN)) >> + && builtin_decl_implicit (BUILT_IN_STRLEN) >> + && flag_tree_loop_distribute_patterns) >> generate_strlen_builtin (loop, reduction_var, load_iv.base, >> reduction_iv.base, loc); >> else if (direct_optab_handler (rawmemchr_optab, TYPE_MODE >> (load_type)) >> ... >> ? >> >> Or is the comment no longer valid? > > It is still valid - and yes, I think we need to guard it with this flag > but please do it in the caller to transform_reduction_loop. Done. Ok for trunk? Thanks, - Tom --------------BycAKCsWDkff0RVqOoGYRcMX Content-Type: text/x-patch; charset=UTF-8; name="0001-ldist-Don-t-add-lib-calls-with-fno-tree-loop-distribute-patterns.patch" Content-Disposition: attachment; filename*0="0001-ldist-Don-t-add-lib-calls-with-fno-tree-loop-distribute"; filename*1="-patterns.patch" Content-Transfer-Encoding: base64 W2xkaXN0XSBEb24ndCBhZGQgbGliIGNhbGxzIHdpdGggLWZuby10cmVlLWxvb3AtZGlzdHJp YnV0ZS1wYXR0ZXJucwoKQXMgbWVudGlvbmVkIGluIFBSNTY4ODggY29tbWVudCAyMToKLi4u Ci1mbm8tdHJlZS1sb29wLWRpc3RyaWJ1dGUtcGF0dGVybnMgaXMgdGhlIHJlbGlhYmxlIHdh eSB0byBub3QKdHJhbnNmb3JtIGxvb3BzIGludG8gbGlicmFyeSBjYWxscy4KLi4uCgpIb3dl dmVyLCBzaW5jZSBjb21taXQgNmY5NjZmMDYxNDYgKCJsZGlzdDogUmVjb2duaXplIHN0cmxl biBhbmQgcmF3bWVtY2hyIGxpa2UKbG9vcHMiKSBhIHN0cmxlbiBvciByYXdtZW1jaHIgbGli cmFyeSBjYWxsIG1heSBiZSBpbnRyb2R1Y2VkIGJ5IGxkaXN0LgoKVGhpcyBjYXVzZWQgcmVn cmVzc2lvbnMgaW4gdGVzdGNhc2VzCmdjYy5jLXRvcnR1cmUvZXhlY3V0ZS9idWlsdGlucy9z dHJsZW57LC0yLC0zfS5jIGZvciBudnB0eC4KCkZpeCB0aGlzIGJ5IG5vdCBjYWxsaW5nIHRy YW5zZm9ybV9yZWR1Y3Rpb25fbG9vcCBmcm9tCmxvb3BfZGlzdHJpYnV0aW9uOjpleGVjdXRl IGZvciAtZm5vLXRyZWUtbG9vcC1kaXN0cmlidXRlLXBhdHRlcm5zLgoKVGVzdGVkIHJlZ3Jl c3NpbmcgdGVzdC1jYXNlcyBhcyB3ZWxsIGFzIGdjYy5kZy90cmVlLXNzYS9sZGlzdC0qLmMg b24KbnZwdHguCgpnY2MvQ2hhbmdlTG9nOgoKMjAyMi0wMS0zMSAgVG9tIGRlIFZyaWVzICA8 dGRldnJpZXNAc3VzZS5kZT4KCgkqIHRyZWUtbG9vcC1kaXN0cmlidXRpb24uY2MgKGdlbmVy YXRlX3JlZHVjdGlvbl9idWlsdGluXzEpOiBDaGVjayBmb3IKCS1mdHJlZS1sb29wLWRpc3Ry aWJ1dGUtcGF0dGVybnMuCgkobG9vcF9kaXN0cmlidXRpb246OmV4ZWN1dGUpOiBEb24ndCBj YWxsIHRyYW5zZm9ybV9yZWR1Y3Rpb25fbG9vcCBmb3IKCS1mbm8tdHJlZS1sb29wLWRpc3Ry aWJ1dGUtcGF0dGVybnMuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCjIwMjItMDEtMzEg IFRvbSBkZSBWcmllcyAgPHRkZXZyaWVzQHN1c2UuZGU+CgoJKiBnY2MuZGcvdHJlZS1zc2Ev bGRpc3Qtc3RybGVuLTQuYzogTmV3IHRlc3QuCgotLS0KIGdjYy90ZXN0c3VpdGUvZ2NjLmRn L3RyZWUtc3NhL2xkaXN0LXN0cmxlbi00LmMgfCAxNyArKysrKysrKysrKysrKysrKwogZ2Nj L3RyZWUtbG9vcC1kaXN0cmlidXRpb24uY2MgICAgICAgICAgICAgICAgICB8ICA1ICsrKyst CiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9sZGlzdC1zdHJsZW4t NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvbGRpc3Qtc3RybGVuLTQuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVhZmIzN2U4NGZjMwot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL2xkaXN0 LXN0cmxlbi00LmMKQEAgLTAsMCArMSwxNyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS1sb29wLWRpc3RyaWJ1dGlvbiAtZm5vLXRy ZWUtbG9vcC1kaXN0cmlidXRlLXBhdHRlcm5zIC1mZHVtcC10cmVlLWxkaXN0LWRldGFpbHMi IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgImdlbmVyYXRlZCBz dHJsZW4iICJsZGlzdCIgfSB9ICovCisKKy8qIENvcGllZCBmcm9tIGdjYy90ZXN0c3VpdGUv Z2NjLmMtdG9ydHVyZS9leGVjdXRlL2J1aWx0aW5zL2xpYi9zdHJsZW4uYy4gICovCisKK19f U0laRV9UWVBFX18KK2ZvbyAoY29uc3QgY2hhciAqcykKK3sKKyAgX19TSVpFX1RZUEVfXyBp OworCisgIGkgPSAwOworICB3aGlsZSAoc1tpXSAhPSAwKQorICAgIGkrKzsKKworICByZXR1 cm4gaTsKK30KZGlmZiAtLWdpdCBhL2djYy90cmVlLWxvb3AtZGlzdHJpYnV0aW9uLmNjIGIv Z2NjL3RyZWUtbG9vcC1kaXN0cmlidXRpb24uY2MKaW5kZXggNmZlNTljZDU2ODU1Li5jN2I0 Mjg1NzI2MzYgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLWxvb3AtZGlzdHJpYnV0aW9uLmNjCisr KyBiL2djYy90cmVlLWxvb3AtZGlzdHJpYnV0aW9uLmNjCkBAIC0zMjkwLDYgKzMyOTAsOCBA QCBnZW5lcmF0ZV9yZWR1Y3Rpb25fYnVpbHRpbl8xIChsb29wX3AgbG9vcCwgZ2ltcGxlX3Nl cSAmc2VxLAogCQkJICAgICAgdHJlZSByZWR1Y3Rpb25fdmFyX29sZCwgdHJlZSByZWR1Y3Rp b25fdmFyX25ldywKIAkJCSAgICAgIGNvbnN0IGNoYXIgKmluZm8sIG1hY2hpbmVfbW9kZSBs b2FkX21vZGUpCiB7CisgIGdjY19hc3NlcnQgKGZsYWdfdHJlZV9sb29wX2Rpc3RyaWJ1dGVf cGF0dGVybnMpOworCiAgIC8qIFBsYWNlIG5ldyBzdGF0ZW1lbnRzIGJlZm9yZSBMT09QLiAg Ki8KICAgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgZ3NpID0gZ3NpX2xhc3RfYmIgKGxvb3BfcHJl aGVhZGVyX2VkZ2UgKGxvb3ApLT5zcmMpOwogICBnc2lfaW5zZXJ0X3NlcV9hZnRlciAoJmdz aSwgc2VxLCBHU0lfQ09OVElOVUVfTElOS0lORyk7CkBAIC0zNzczLDcgKzM3NzUsOCBAQCBs b29wX2Rpc3RyaWJ1dGlvbjo6ZXhlY3V0ZSAoZnVuY3Rpb24gKmZ1bikKICAgICAgIGlmIChu aXRlcnMgPT0gTlVMTF9UUkVFIHx8IG5pdGVycyA9PSBjaHJlY19kb250X2tub3cpCiAJewog CSAgZGF0YXJlZnNfdmVjLmNyZWF0ZSAoMjApOwotCSAgaWYgKHRyYW5zZm9ybV9yZWR1Y3Rp b25fbG9vcCAobG9vcCkpCisJICBpZiAoZmxhZ190cmVlX2xvb3BfZGlzdHJpYnV0ZV9wYXR0 ZXJucworCSAgICAgICYmIHRyYW5zZm9ybV9yZWR1Y3Rpb25fbG9vcCAobG9vcCkpCiAJICAg IHsKIAkgICAgICBjaGFuZ2VkID0gdHJ1ZTsKIAkgICAgICBsb29wc190b19iZV9kZXN0cm95 ZWQuc2FmZV9wdXNoIChsb29wKTsK --------------BycAKCsWDkff0RVqOoGYRcMX--