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.129.124]) by sourceware.org (Postfix) with ESMTPS id C63A83856DC7 for ; Wed, 24 May 2023 12:42:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C63A83856DC7 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=1684932154; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=PJSihj3gOHuY5ZknZQrLGeQsLKN9Qzeo65yYSw4fYFE=; b=ItW77CFQEIoNqFZ/g572UWEVwVAbYzkxNcWTsOXMi4h1rGstFiAmOlGdFoE60UulyamWQd zn3kJ+4vI5vliMogGnDKcSU6mWM4XPFTQBDZmjmNTZsqLkreXcLPmIJ1acxXlUGXIU9m3k DKvdJfcBwqXHZhWQBD0kESPPlzKqjsg= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-195-oI-Ps45tN2Oig3TI-oWGTw-1; Wed, 24 May 2023 08:42:30 -0400 X-MC-Unique: oI-Ps45tN2Oig3TI-oWGTw-1 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-623998c0d33so7244546d6.0 for ; Wed, 24 May 2023 05:42:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684932149; x=1687524149; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vIvi355OMzO2Ail3uJWMGHtsoGkczA4zlYlopkq3RCY=; b=Vu1wJ98c0uZ/128z4ejcY8h2t1tNUDoLLo1MFGMiZ54gtUOiMEYg19Bgn5cLBbfeXw gaLWIl5JKMS+vH3JcfCbeNgQcL5gTLRP1Jv5P8Co95ZjJ8EHkq5axpOctyi3ieCc4EhW diD6sXiYdg+H22X62sCmpx1glwt9hF+XfVsoCYRD/aXPlBtqAhGBXNoac9w7fhygaU/H IyqZS3b4WbrcRaIFdbBc+PYmV8XSymm/sI1aVCjUjBn+aESWz7cXW6koaTTL3f8vv5ch HNZD71nVIWaoYE0VQ+Sdn7yv4ckcjbPc8E6JWqCrmtpNL1wvhXXQ0fEr66O0AIbNqPG+ DENw== X-Gm-Message-State: AC+VfDxQQc48YCb3Bc3+ygzJBUTT/TbiF0Jnq0DSMJhe96sCcnn2odHS i7nk+imo8KyJpxYnqVRsTJnXmB8dckO2QP2zCbf8beI99TPodj18aZoVgF4kuAVDaReH9jM2T4d sLEQX9VLBw1OzbakqU0g5iPZVqMqyk8v+LW/CRTqDVrAT86DzClUS6XkAsSAAo2HGCz4uGrZDMp KZlw== X-Received: by 2002:a05:6214:410d:b0:625:9578:990e with SMTP id kc13-20020a056214410d00b006259578990emr5294091qvb.23.1684932149661; Wed, 24 May 2023 05:42:29 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7hjIEpwROBOaDNZPkwHRmcexKU9kTWRkn7Q5E4UMrK9DXOqTQW1jXGY2v8D6Yf3rgwKvhDKA== X-Received: by 2002:a05:6214:410d:b0:625:9578:990e with SMTP id kc13-20020a056214410d00b006259578990emr5294071qvb.23.1684932149275; Wed, 24 May 2023 05:42:29 -0700 (PDT) Received: from ?IPV6:2607:fea8:51df:4200::933? ([2607:fea8:51df:4200::933]) by smtp.gmail.com with ESMTPSA id mm19-20020a0562145e9300b00623927281c2sm3536239qvb.40.2023.05.24.05.42.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 24 May 2023 05:42:28 -0700 (PDT) Message-ID: <419533f4-b632-ad55-f225-8f8dd6fd709b@redhat.com> Date: Wed, 24 May 2023 08:42:27 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [COMMITTED 3/3] PR tree-optimization/109695 - Only update global value if it changes. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------cxS06iP5s1h6ZMJAYvZb0ynv" Content-Language: en-US X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,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. --------------cxS06iP5s1h6ZMJAYvZb0ynv Content-Type: multipart/alternative; boundary="------------EWgvAmy016ZZCkeBVxJSMyqy" --------------EWgvAmy016ZZCkeBVxJSMyqy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This patch implements suggestion 1) from the PR: 1) We unconditionally write the new value calculated to the global cache once the dependencies are resolved.  This gives it a new timestamp, and thus makes any other values which used it out of date when they really aren't.   This causes a lot of extra churn. TODO: This should be changed to only update it when it actually changes.  Client code shouldn't have to do this, it should be handled right int the cache's set_global_value (). It turns out it is about a 3% compilation speed hit to compare the ranges every time we set them, which loses any gains we see. As such, I changed it so that set_global_range takes an extra parameter which indicates whether the value has changed or not. In all cases, we have the result of intersection which gives us the information for free, so we might as well take advantage of it.  instead we get about a 2.7% improvement in speed in VRP and another 0.7% in threading. set_global_range now checks the changed flag, and if it hasnt changed, checks to see if the value is current or not, and only gives the result a new timestamp if its out of date.  I found many cases where we   1) initally calculate the result, give it a timestamp,   2) then evaluate the dependencies.. which get fresher timestamps than the result   3) the initial result turns out to still be right, so we dont have to propagate the value or change it. However, if we do not give it a fresh time stamp in this case, it wil be out of date if we ever check is sine the dependencies are fresher.   So in this case, we give it a new timestamp so we wont re-evaluate it. The 3 patches together result in VRP being just 0.15% slower, threading being 0.6% faster, and overall compilation improves by 0.05% It will also compile the testcase from the PR with issues after reverting Aldy's memory work and using int_range_max as int_range<255> again.. so that is also an indication the results are worthwhile. At this point, I don't think its worth pursuing suggestion 4 from the PR.. it is wrought with dependency issues that I don't think we need to deal with at this moment.  When I have more time I will give it more consideration. Bootstraps on x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew --------------EWgvAmy016ZZCkeBVxJSMyqy-- --------------cxS06iP5s1h6ZMJAYvZb0ynv Content-Type: text/x-patch; charset=UTF-8; name="0003-Only-update-global-value-if-it-changes.patch" Content-Disposition: attachment; filename="0003-Only-update-global-value-if-it-changes.patch" Content-Transfer-Encoding: base64 RnJvbSBjM2MxNDk5NDk4ZmY4ZjQ2NWVjN2VhY2NlNjY4MWM1YzJkYTAzYTky IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVv ZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyMyBNYXkgMjAy MyAxNTo0MTowMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBPbmx5IHVw ZGF0ZSBnbG9iYWwgdmFsdWUgaWYgaXQgY2hhbmdlcy4KCkRvIG5vdCB1cGRh dGUgYW5kIHByb3BhZ2F0ZSBhIGdsb2JhbCB2YWx1ZSBpZiBpdCBoYXNuJ3Qg Y2hhbmdlZC4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xMDk2OTUKCSogZ2lt cGxlLXJhbmdlLWNhY2hlLmNjIChyYW5nZXJfY2FjaGU6OmdldF9nbG9iYWxf cmFuZ2UpOiBBZGQKCWNoYW5nZWQgcGFyYW0uCgkqIGdpbXBsZS1yYW5nZS1j YWNoZS5oIChyYW5nZXJfY2FjaGU6OmdldF9nbG9iYWxfcmFuZ2UpOiBEaXR0 by4KCSogZ2ltcGxlLXJhbmdlLmNjIChnaW1wbGVfcmFuZ2VyOjpyYW5nZV9v Zl9zdG10KTogUGFzcyBjaGFuZ2VkCglmbGFnIHRvIHNldF9nbG9iYWxfcmFu Z2UuCgkoZ2ltcGxlX3Jhbmdlcjo6cHJlZmlsbF9zdG10X2RlcGVuZGVuY2ll cyk6IERpdHRvLgotLS0KIGdjYy9naW1wbGUtcmFuZ2UtY2FjaGUuY2MgfCAx MCArKysrKysrKystCiBnY2MvZ2ltcGxlLXJhbmdlLWNhY2hlLmggIHwgIDIg Ky0KIGdjYy9naW1wbGUtcmFuZ2UuY2MgICAgICAgfCAgOCArKysrLS0tLQog MyBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2djYy9naW1wbGUtcmFuZ2UtY2FjaGUuY2Mg Yi9nY2MvZ2ltcGxlLXJhbmdlLWNhY2hlLmNjCmluZGV4IGRiN2VlOGVhYjRl Li5lMDY5MjQxYmM5ZCAxMDA2NDQKLS0tIGEvZ2NjL2dpbXBsZS1yYW5nZS1j YWNoZS5jYworKysgYi9nY2MvZ2ltcGxlLXJhbmdlLWNhY2hlLmNjCkBAIC05 OTIsMTAgKzk5MiwxOCBAQCByYW5nZXJfY2FjaGU6OmdldF9nbG9iYWxfcmFu Z2UgKHZyYW5nZSAmciwgdHJlZSBuYW1lLCBib29sICZjdXJyZW50X3ApCiAv LyAgU2V0IHRoZSBnbG9iYWwgcmFuZ2Ugb2YgTkFNRSB0byBSIGFuZCBnaXZl IGl0IGEgdGltZXN0YW1wLgogCiB2b2lkCi1yYW5nZXJfY2FjaGU6OnNldF9n bG9iYWxfcmFuZ2UgKHRyZWUgbmFtZSwgY29uc3QgdnJhbmdlICZyKQorcmFu Z2VyX2NhY2hlOjpzZXRfZ2xvYmFsX3JhbmdlICh0cmVlIG5hbWUsIGNvbnN0 IHZyYW5nZSAmciwgYm9vbCBjaGFuZ2VkKQogewogICAvLyBTZXR0aW5nIGEg cmFuZ2UgYWx3YXlzIGNsZWFycyB0aGUgYWx3YXlzX2N1cnJlbnQgZmxhZy4K ICAgbV90ZW1wb3JhbC0+c2V0X2Fsd2F5c19jdXJyZW50IChuYW1lLCBmYWxz ZSk7CisgIGlmICghY2hhbmdlZCkKKyAgICB7CisgICAgICAvLyBJZiB0aGVy ZSBhcmUgZGVwZW5kZW5jaWVzLCBtYWtlIHN1cmUgdGhpcyBpcyBub3Qgb3V0 IG9mIGRhdGUuCisgICAgICBpZiAoIW1fdGVtcG9yYWwtPmN1cnJlbnRfcCAo bmFtZSwgbV9nb3JpLmRlcGVuZDEgKG5hbWUpLAorCQkJCSBtX2dvcmkuZGVw ZW5kMiAobmFtZSkpKQorCW1fdGVtcG9yYWwtPnNldF90aW1lc3RhbXAgKG5h bWUpOworICAgICAgcmV0dXJuOworICAgIH0KICAgaWYgKG1fZ2xvYmFscy5z ZXRfcmFuZ2UgKG5hbWUsIHIpKQogICAgIHsKICAgICAgIC8vIElmIHRoZXJl IHdhcyBhbHJlYWR5IGEgcmFuZ2Ugc2V0LCBwcm9wYWdhdGUgdGhlIG5ldyB2 YWx1ZS4KZGlmZiAtLWdpdCBhL2djYy9naW1wbGUtcmFuZ2UtY2FjaGUuaCBi L2djYy9naW1wbGUtcmFuZ2UtY2FjaGUuaAppbmRleCA5NDZmYmM1MTQ2NS4u ODcxMjU1YTgxMTYgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtcmFuZ2UtY2Fj aGUuaAorKysgYi9nY2MvZ2ltcGxlLXJhbmdlLWNhY2hlLmgKQEAgLTExNyw3 ICsxMTcsNyBAQCBwdWJsaWM6CiAKICAgYm9vbCBnZXRfZ2xvYmFsX3Jhbmdl ICh2cmFuZ2UgJnIsIHRyZWUgbmFtZSkgY29uc3Q7CiAgIGJvb2wgZ2V0X2ds b2JhbF9yYW5nZSAodnJhbmdlICZyLCB0cmVlIG5hbWUsIGJvb2wgJmN1cnJl bnRfcCk7Ci0gIHZvaWQgc2V0X2dsb2JhbF9yYW5nZSAodHJlZSBuYW1lLCBj b25zdCB2cmFuZ2UgJnIpOworICB2b2lkIHNldF9nbG9iYWxfcmFuZ2UgKHRy ZWUgbmFtZSwgY29uc3QgdnJhbmdlICZyLCBib29sIGNoYW5nZWQgPSB0cnVl KTsKIAogICB2b2lkIHByb3BhZ2F0ZV91cGRhdGVkX3ZhbHVlICh0cmVlIG5h bWUsIGJhc2ljX2Jsb2NrIGJiKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBs ZS1yYW5nZS5jYyBiL2djYy9naW1wbGUtcmFuZ2UuY2MKaW5kZXggYTI3NWMw OTBlNGIuLjRmYWUzZjk1ZTZhIDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxlLXJh bmdlLmNjCisrKyBiL2djYy9naW1wbGUtcmFuZ2UuY2MKQEAgLTMyMCw4ICsz MjAsOCBAQCBnaW1wbGVfcmFuZ2VyOjpyYW5nZV9vZl9zdG10ICh2cmFuZ2Ug JnIsIGdpbXBsZSAqcywgdHJlZSBuYW1lKQogICAgICAgLy8gQ29tYmluZSB0 aGUgbmV3IHZhbHVlIHdpdGggdGhlIG9sZCB2YWx1ZS4gIFRoaXMgaXMgcmVx dWlyZWQgYmVjYXVzZQogICAgICAgLy8gdGhlIHdheSB2YWx1ZSBwcm9wYWdh dGlvbiB3b3Jrcywgd2hlbiB0aGUgSUwgY2hhbmdlcyBvbiB0aGUgZmx5IHdl CiAgICAgICAvLyBjYW4gc29tZXRpbWVzIGdldCBkaWZmZXJlbnQgcmVzdWx0 cy4gIFNlZSBQUiA5Nzc0MS4KLSAgICAgIHIuaW50ZXJzZWN0ICh0bXApOwot ICAgICAgbV9jYWNoZS5zZXRfZ2xvYmFsX3JhbmdlIChuYW1lLCByKTsKKyAg ICAgIGJvb2wgY2hhbmdlZCA9IHIuaW50ZXJzZWN0ICh0bXApOworICAgICAg bV9jYWNoZS5zZXRfZ2xvYmFsX3JhbmdlIChuYW1lLCByLCBjaGFuZ2VkKTsK ICAgICAgIHJlcyA9IHRydWU7CiAgICAgfQogCkBAIC0zOTMsOCArMzkzLDgg QEAgZ2ltcGxlX3Jhbmdlcjo6cHJlZmlsbF9zdG10X2RlcGVuZGVuY2llcyAo dHJlZSBzc2EpCiAJICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IGxvc2Ug YW55IGN1cnJlbnQgZ2xvYmFsIGluZm8uCiAJICAgICAgVmFsdWVfUmFuZ2Ug dG1wIChUUkVFX1RZUEUgKG5hbWUpKTsKIAkgICAgICBtX2NhY2hlLmdldF9n bG9iYWxfcmFuZ2UgKHRtcCwgbmFtZSk7Ci0JICAgICAgci5pbnRlcnNlY3Qg KHRtcCk7Ci0JICAgICAgbV9jYWNoZS5zZXRfZ2xvYmFsX3JhbmdlIChuYW1l LCByKTsKKwkgICAgICBib29sIGNoYW5nZWQgPSB0bXAuaW50ZXJzZWN0IChy KTsKKwkgICAgICBtX2NhY2hlLnNldF9nbG9iYWxfcmFuZ2UgKG5hbWUsIHRt cCwgY2hhbmdlZCk7CiAJICAgIH0KIAkgIGNvbnRpbnVlOwogCX0KLS0gCjIu NDAuMQoK --------------cxS06iP5s1h6ZMJAYvZb0ynv--