From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 612E63858D1E for ; Wed, 29 Mar 2023 17:22:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 612E63858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1680110552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=1+/8Y74QsGiv8x5f7ZJBUBWSS0u2lQAN0WEYYO2Qbhs=; b=FTVXr6cS/EbjCFAcZWssecZhjp+QxVWnY/Mx58p+CJgatyS/iqos9g2KVX+TDRb0Y8wSgn 9ynD0m4zlKoSYan/JYg+LWnvbs64ZArgnBGlxIarErzQW6LbaHmn19pfi16uHkalBowoJS qj7pkDvLu1UxBP+mbGnjt/ZMzFb4Yu4= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-412-p94jxQWxNo-zTw4p_Mfqxw-1; Wed, 29 Mar 2023 13:22:31 -0400 X-MC-Unique: p94jxQWxNo-zTw4p_Mfqxw-1 Received: by mail-qv1-f69.google.com with SMTP id v8-20020a0ccd88000000b005c1927d1609so6877776qvm.12 for ; Wed, 29 Mar 2023 10:22:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680110549; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QCC1upGmlwnF3rDiyapAhMZqm5++HWlyTocqsSw05WU=; b=d6pX9b1gzN9nI2574F0d41dGoKtUVZ+15wDZhtBfhKvGLHkOwuRY/RP3T4986t4xBb vWdoqK/MY5HvM1GBWDxZIQ27yTOj9uFtveN3krzlepfJ4CMH+1Qua9XGV4OdNUOH/Ouk EE8SNTW/3SYQr4XDz4frwNA5ZD2Fr7fwIlycg/xA3xiY3QEVBbcrzNcXK+GqbltvwrhN DI7DjeDD1628NHkh6gJxpCwtdvMTuz6EEBVFKKagPC+j+4MKMtEUJvc23u08d6A0OBEV FyArg2FT4T63HcttA5KJCqog6HfDWG1LZzahPqHzO9c1YVta5jttj+tUX5dJAByPIuin Mx7w== X-Gm-Message-State: AAQBX9fAOMgOqX6zx4ot27/3jf+EGzwzmZ1GfnvmQ10OI2SMtvQKjyDe rvW4NCn4c59ltS/dC7+Sdsa+272u/GAoSkyUiRZ6eyUZoZnHkpAoxtNrIHmXxX+iGrpRfzuDk/W Wm2sErvw+rd6oA5+Togea7pNlu6pal5U4oZXYIzjr6phQFDBQJOVPcYNdO/zglVDX9yAyzR+JGw LHew== X-Received: by 2002:a05:6214:1d26:b0:5a3:cbc6:8145 with SMTP id f6-20020a0562141d2600b005a3cbc68145mr35806859qvd.19.1680110549523; Wed, 29 Mar 2023 10:22:29 -0700 (PDT) X-Google-Smtp-Source: AKy350YPmSE0BCduWE5YFgZWpDYIduelx+355E94whwHwzh4tr0TR1kZ8VaUOGZoDpOuP4qp+t8l+g== X-Received: by 2002:a05:6214:1d26:b0:5a3:cbc6:8145 with SMTP id f6-20020a0562141d2600b005a3cbc68145mr35806814qvd.19.1680110549063; Wed, 29 Mar 2023 10:22:29 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::759b? ([2607:fea8:a263:f600::759b]) by smtp.gmail.com with ESMTPSA id cn5-20020ad44a65000000b005dd8b9345e1sm4753323qvb.121.2023.03.29.10.22.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Mar 2023 10:22:28 -0700 (PDT) Message-ID: <54bb3bc9-e0c1-b5ab-4447-5908b09fd19f@redhat.com> Date: Wed, 29 Mar 2023 13:22:27 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 To: gcc-patches , Jakub Jelinek , Richard Biener , "hernandez, aldy" From: Andrew MacLeod Subject: recomputation and PR 109154 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------fGhBQdZq4T5we0ZIEmBgi9yW" Content-Language: en-US X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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. --------------fGhBQdZq4T5we0ZIEmBgi9yW Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit The patch, or a slight variation (attached), in the PR allows us to generate better ranges be recomputing longer instruction sequences on outgoing edges. This in fact also fixes XPASS: gcc.dg/Walloca-13.c  (test for bogus messages, line 11)   [local count: 1073741824]:   _1 = p_5(D) - q_6(D);   _2 = _1 /[ex] 4;   n_7 = (long unsigned int) _2;   _11 = (long unsigned int) _1;   if (_11 <= 396)     goto ; [33.00%]   else     goto ; [67.00%]   [local count: 354334800]:   _3 = __builtin_alloca (n_7); Where _2 was recomputed before, but n_7 was not.  Now it is, and we correctly do not issue the warning any more.  awesome., however, as seems to be the case often, better ranges result in, I now get: FAIL: 23_containers/vector/bool/allocator/copy.cc (test for excess errors) because we now generate: /opt/notnfs/amacleod/master/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:437: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ writing between 9 and 9223372036854775807 bytes into a region of size 8 overflows the destination [-Wstringop-overflow=]  I see:  ....     _216 = operator new (8); _216 : [irange] long unsigned int * [1, +INF]   ......     [local count: 86938296]:     D.245552 ={v} {CLOBBER(eol)};     _74 = v1.D.217578._M_impl.D.217043._M_start.D.58619._M_p;     _638 = (long int) _74;     _261 = -_638;     _383 = (long unsigned int) _261;     if (_638 < -8)       goto ; [90.00%]     else       goto ; [10.00%] _261 : [irange] long int [-9223372036854775807, +INF] _383 : [irange] long unsigned int [0, 9223372036854775807][9223372036854775809, +INF] 8->12  (T) _74 :        [irange] _Bit_type * [1, +INF] 8->12  (T) _261 :       [irange] long int [9, +INF] NONZERO 0x7fffffffffffffff 8->12  (T) _383 :       [irange] long unsigned int [9, 9223372036854775807] NONZERO 0x7fffffffffffffff 8->12  (T) _638 :       [irange] long int [-INF, -9] =========== BB 12 ============ _74     [irange] _Bit_type * [9223372036854775808, 18446744073709551607] _383    [irange] long unsigned int [9, 9223372036854775807] NONZERO 0x7fffffffffffffff     [local count: 78244465]:     __builtin_memmove (_216, _74, _383); The change is that we now recompute _383 which we didnt before. so we are seeing memmove being called on what is effectively: memmove (operator new (8), _74, [9, 9223372036854775807]) And thus the warning. IS this one of the warnings that has been causing issues?  and now Im triggering it again? Back at fixup_cfg3 time, it looks like:  _261 = __last$D58797$_M_p_245 - _247;   _262 = _261 > 8;   _263 = (long int) _262;   _264 = __builtin_expect (_263, 1);   if (_264 != 0)     goto ; [90.00%]   else     goto ; [10.00%] ..................   [local count: 78244465]:   _265 = (long unsigned int) _261;   __builtin_memmove (_246, _247, _265); So the builtin expect certainly implies it is expecting to have a value > 8 Early on the code looks like: _1 = __last_10(D) - __first_11(D);   _Num_12 = _1 /[ex] 8;   _2 = _Num_12 > 1;   _3 = (long int) _2;   _4 = __builtin_expect (_3, 1);   if (_4 != 0)     goto ; [INV]   else     goto ; [INV]   :   _Num.28_5 = (long unsigned int) _Num_12;   _6 = _Num.28_5 * 8;   __builtin_memmove (__result_14(D), __first_11(D), _6); SO it does still do basically the same thing. Im not sure whether this is pointing out something real or another false positive... Andrew --------------fGhBQdZq4T5we0ZIEmBgi9yW Content-Type: text/x-patch; charset=UTF-8; name="154.diff" Content-Disposition: attachment; filename="154.diff" Content-Transfer-Encoding: base64 Y29tbWl0IDM1OGQwY2E0NGZhZjJlMjBmYmFjZDBmNzQzODYzMDhiNWNhNTJjZDQKQXV0aG9yOiBB bmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KRGF0ZTogICBUdWUgTWFyIDI4IDEy OjE2OjM0IDIwMjMgLTA0MDAKCiAgICBBZGQgcmVjdXJzaXZlIEdPUkkgcmVjb21wdWF0aW9ucyB3 aXRoIGEgZGVwdGggbGltaXQuCgpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsZS1yYW5nZS1nb3JpLmNj IGIvZ2NjL2dpbXBsZS1yYW5nZS1nb3JpLmNjCmluZGV4IDZlOGRmYTg1Y2E4Li41ZjQzMTNiMjdk ZCAxMDA2NDQKLS0tIGEvZ2NjL2dpbXBsZS1yYW5nZS1nb3JpLmNjCisrKyBiL2djYy9naW1wbGUt cmFuZ2UtZ29yaS5jYwpAQCAtMTMwOCw3ICsxMzA4LDcgQEAgZ29yaV9jb21wdXRlOjpjb21wdXRl X29wZXJhbmQxX2FuZF9vcGVyYW5kMl9yYW5nZSAodnJhbmdlICZyLAogLy8gZGlyZWN0IGRlcGVu ZGVudCBpcyBleHBvcnRlZCwgaXQgbWF5IGFsc28gY2hhbmdlIHRoZSBjb21wdXRlZCB2YWx1ZSBv ZiBOQU1FLgogCiBib29sCi1nb3JpX2NvbXB1dGU6Om1heV9yZWNvbXB1dGVfcCAodHJlZSBuYW1l LCBiYXNpY19ibG9jayBiYikKK2dvcmlfY29tcHV0ZTo6bWF5X3JlY29tcHV0ZV9wICh0cmVlIG5h bWUsIGJhc2ljX2Jsb2NrIGJiLCBpbnQgZGVwdGgpCiB7CiAgIHRyZWUgZGVwMSA9IGRlcGVuZDEg KG5hbWUpOwogICB0cmVlIGRlcDIgPSBkZXBlbmQyIChuYW1lKTsKQEAgLTEzMjIsMjIgKzEzMjIs MzYgQEAgZ29yaV9jb21wdXRlOjptYXlfcmVjb21wdXRlX3AgKHRyZWUgbmFtZSwgYmFzaWNfYmxv Y2sgYmIpCiAgIGlmIChpc19hPGdwaGkgKj4gKHMpIHx8IGdpbXBsZV9oYXNfc2lkZV9lZmZlY3Rz IChzKSkKICAgICByZXR1cm4gZmFsc2U7CiAKLSAgLy8gSWYgZWRnZSBpcyBzcGVjaWZpZWQsIGNo ZWNrIGlmIE5BTUUgY2FuIGJlIHJlY2FsY3VsYXRlZCBvbiB0aGF0IGVkZ2UuCi0gIGlmIChiYikK LSAgICByZXR1cm4gKChpc19leHBvcnRfcCAoZGVwMSwgYmIpKQotCSAgICB8fCAoZGVwMiAmJiBp c19leHBvcnRfcCAoZGVwMiwgYmIpKSk7CisgIGlmICghZGVwMikKKyAgICB7CisgICAgICAvLyAt MSBpbmRpY2F0ZXMgYSBkZWZhdWx0IHBhcmFtLCBjb252ZXJ0IGl0IHRvIHRoZSByZWFsIGRlZmF1 bHQuCisgICAgICBpZiAoZGVwdGggPT0gLTEpCisJeworCSAgZGVwdGggPSAoaW50KXBhcmFtX3Jh bmdlcl9yZWNvbXB1dGVfZGVwdGg7CisJICBnY2NfY2hlY2tpbmdfYXNzZXJ0IChkZXB0aCA+PSAx KTsKKwl9CiAKLSAgcmV0dXJuIChpc19leHBvcnRfcCAoZGVwMSkpIHx8IChkZXAyICYmIGlzX2V4 cG9ydF9wIChkZXAyKSk7CisgICAgICBib29sIHJlcyA9IChiYiA/IGlzX2V4cG9ydF9wIChkZXAx LCBiYikgOiBpc19leHBvcnRfcCAoZGVwMSkpOworICAgICAgaWYgKHJlcyB8fCBkZXB0aCA8PSAx KQorCXJldHVybiByZXM7CisgICAgICAvLyBDaGVjayBhbm90aGVyIGxldmVsIG9mIHJlY29tcHV0 YXRpb24uCisgICAgICByZXR1cm4gbWF5X3JlY29tcHV0ZV9wIChkZXAxLCBiYiwgLS1kZXB0aCk7 CisgICAgfQorICAvLyBUd28gZGVwZW5kZW5jaWVzIHRlcm1pbmF0ZSB0aGUgZGVwdGggb2YgdGhl IHNlYXJjaC4KKyAgaWYgKGJiKQorICAgIHJldHVybiBpc19leHBvcnRfcCAoZGVwMSwgYmIpIHx8 IGlzX2V4cG9ydF9wIChkZXAyLCBiYik7CisgIGVsc2UKKyAgICByZXR1cm4gaXNfZXhwb3J0X3Ag KGRlcDEpIHx8IGlzX2V4cG9ydF9wIChkZXAyKTsKIH0KIAogLy8gUmV0dXJuIFRSVUUgaWYgTkFN RSBjYW4gYmUgcmVjb21wdXRlZCBvbiBlZGdlIEUuICBJZiBhbnkgZGlyZWN0IGRlcGVuZGVudAog Ly8gaXMgZXhwb3J0ZWQgb24gZWRnZSBFLCBpdCBtYXkgY2hhbmdlIHRoZSBjb21wdXRlZCB2YWx1 ZSBvZiBOQU1FLgogCiBib29sCi1nb3JpX2NvbXB1dGU6Om1heV9yZWNvbXB1dGVfcCAodHJlZSBu YW1lLCBlZGdlIGUpCitnb3JpX2NvbXB1dGU6Om1heV9yZWNvbXB1dGVfcCAodHJlZSBuYW1lLCBl ZGdlIGUsIGludCBkZXB0aCkKIHsKICAgZ2NjX2NoZWNraW5nX2Fzc2VydCAoZSk7Ci0gIHJldHVy biBtYXlfcmVjb21wdXRlX3AgKG5hbWUsIGUtPnNyYyk7CisgIHJldHVybiBtYXlfcmVjb21wdXRl X3AgKG5hbWUsIGUtPnNyYywgZGVwdGgpOwogfQogCiAKZGlmZiAtLWdpdCBhL2djYy9naW1wbGUt cmFuZ2UtZ29yaS5oIGIvZ2NjL2dpbXBsZS1yYW5nZS1nb3JpLmgKaW5kZXggMGZjOTBlYzhhMTgu LjNlYTRiNDU1OTViIDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxlLXJhbmdlLWdvcmkuaAorKysgYi9n Y2MvZ2ltcGxlLXJhbmdlLWdvcmkuaApAQCAtMTcyLDggKzE3Miw4IEBAIHByaXZhdGU6CiAgIGJv b2wgcmVmaW5lX3VzaW5nX3JlbGF0aW9uICh0cmVlIG9wMSwgdnJhbmdlICZvcDFfcmFuZ2UsCiAJ CQkgICAgICB0cmVlIG9wMiwgdnJhbmdlICZvcDJfcmFuZ2UsCiAJCQkgICAgICBmdXJfc291cmNl ICZzcmMsIHJlbGF0aW9uX2tpbmQgayk7Ci0gIGJvb2wgbWF5X3JlY29tcHV0ZV9wICh0cmVlIG5h bWUsIGVkZ2UgZSk7Ci0gIGJvb2wgbWF5X3JlY29tcHV0ZV9wICh0cmVlIG5hbWUsIGJhc2ljX2Js b2NrIGJiID0gTlVMTCk7CisgIGJvb2wgbWF5X3JlY29tcHV0ZV9wICh0cmVlIG5hbWUsIGVkZ2Ug ZSwgaW50IGRlcHRoID0gLTEpOworICBib29sIG1heV9yZWNvbXB1dGVfcCAodHJlZSBuYW1lLCBi YXNpY19ibG9jayBiYiA9IE5VTEwsIGludCBkZXB0aCA9IC0xKTsKICAgYm9vbCBjb21wdXRlX29w ZXJhbmRfcmFuZ2Vfc3dpdGNoICh2cmFuZ2UgJnIsIGdzd2l0Y2ggKnMsIGNvbnN0IHZyYW5nZSAm bGhzLAogCQkJCSAgICAgdHJlZSBuYW1lLCBmdXJfc291cmNlICZzcmMpOwogICBib29sIGNvbXB1 dGVfb3BlcmFuZDFfcmFuZ2UgKHZyYW5nZSAmciwgZ2ltcGxlX3JhbmdlX29wX2hhbmRsZXIgJmhh bmRsZXIsCmRpZmYgLS1naXQgYS9nY2MvcGFyYW1zLm9wdCBiL2djYy9wYXJhbXMub3B0CmluZGV4 IDIzMjlkMTUwZWYwLi5iMmVjNDM2NTQ2YyAxMDA2NDQKLS0tIGEvZ2NjL3BhcmFtcy5vcHQKKysr IGIvZ2NjL3BhcmFtcy5vcHQKQEAgLTkwMCw2ICs5MDAsMTEgQEAgQ29tbW9uIEpvaW5lZCBVSW50 ZWdlciBWYXIocGFyYW1fcmFuZ2VyX2xvZ2ljYWxfZGVwdGgpIEluaXQoNikgSW50ZWdlclJhbmdl KDEsIDkKIE1heGltdW0gZGVwdGggb2YgbG9naWNhbCBleHByZXNzaW9uIGV2YWx1YXRpb24gcmFu Z2VyIHdpbGwgbG9vayB0aHJvdWdoIHdoZW4KIGV2YWx1YXRpbmcgb3V0Z29pbmcgZWRnZSByYW5n ZXMuCiAKKy1wYXJhbT1yYW5nZXItcmVjb21wdXRlLWRlcHRoPQorQ29tbW9uIEpvaW5lZCBVSW50 ZWdlciBWYXIocGFyYW1fcmFuZ2VyX3JlY29tcHV0ZV9kZXB0aCkgSW5pdCg1KSBJbnRlZ2VyUmFu Z2UoMSwgMTAwKSBQYXJhbSBPcHRpbWl6YXRpb24KK01heGltdW0gZGVwdGggb2YgaW5zdHJ1Y3Rp b24gY2hhaW5zIHRvIGNvbnNpZGVyIGZvciByZWNvbXB1dGF0aW9uIGluIHRoZQorb3V0Z29pbmcg cmFuZ2UgY2FsY3VsYXRvci4KKwogLXBhcmFtPXJlbGF0aW9uLWJsb2NrLWxpbWl0PQogQ29tbW9u IEpvaW5lZCBVSW50ZWdlciBWYXIocGFyYW1fcmVsYXRpb25fYmxvY2tfbGltaXQpIEluaXQoMjAw KSBJbnRlZ2VyUmFuZ2UoMCwgOTk5OSkgUGFyYW0gT3B0aW1pemF0aW9uCiBNYXhpbXVtIG51bWJl ciBvZiByZWxhdGlvbnMgdGhlIG9yYWNsZSB3aWxsIHJlZ2lzdGVyIGluIGEgYmFzaWMgYmxvY2su Cg== --------------fGhBQdZq4T5we0ZIEmBgi9yW--