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 2DF44385700C for ; Wed, 24 May 2023 12:42:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2DF44385700C 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=1684932131; 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=jPuEepolsE9Sf6wGq4Hfe5Vru2c+6MhS/OoNQBP1PsM=; b=ZpiPC2LNHp5w5XUdMFYFI7QhSlKTQkHuciqh+KSOaLQhSe21faa07dLETmyBkf5khM4mQX nMyVVUgoAoWCpq/kEPY7axKumjCdiJQ8XRwrGOXRNgRciOxeFyCqH/6App+PkzYp+rJVve aBMHoqW2ayKQiJkwnM/ODR/q+sS9gaU= 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-266-Pd-_rXrXMd-tTlNLHiekrw-1; Wed, 24 May 2023 08:42:10 -0400 X-MC-Unique: Pd-_rXrXMd-tTlNLHiekrw-1 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-621257e86daso12524576d6.1 for ; Wed, 24 May 2023 05:42:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684932129; x=1687524129; 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=KxIwf/DD6d2C8iJHuUPOlF06DU+m7d+4zc2rTKf2qcg=; b=lUVIaRCIKeDfthlvR2orLhvZphJibAaAC2SgubuGz5byQzRXnt0b77KaZh8IsBQ/zs 8Iw/Pw7myPQTh1+RqbMYS14mXM5qTO+APQ0DhKqz2sTsys1TDaKORZ7FapDBywXmxCis b32twFq+WgLVYWXl8Pt9i1z8grMOD0GqQkZrcQ2KUW0dOKsRgjGjOzV/0q9ZqRRYW4st NUwv8gzhGY4jJ4Akb2Wigp8a0gCUL719tqYtleszqJTB+ZjoxA/ZfauApCjJDrVgZHyr CgzQ9coixtAUrCc76Jv/+fePTPtzP3hKmm/0pwA+mLerop+r4IQG+xMsGisU9kWrNCxT A+Bg== X-Gm-Message-State: AC+VfDwEYu6xHdHZw2+ikrnVyUP4191QeDXHmblO3a5BHQApEaeKoL6Y IVnR7jDneTsBb+VNJnbu8DswExaXpnEEGTb7VzMI23wBOZjBWuOjtj8ijZskfHfF6fZpO/seLrP LqpbEPcophOMWB1x+K/LkjAz/C2Huh7CYzQieQuF9sfxge6gqeLAisgdZI9mcCTeEb5UVMzrsnR fsTQ== X-Received: by 2002:ad4:5d4e:0:b0:623:690c:3ce6 with SMTP id jk14-20020ad45d4e000000b00623690c3ce6mr29737228qvb.32.1684932129072; Wed, 24 May 2023 05:42:09 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ64mskIFeuK7BND24l6NmpRYYLyk0LxuWIRaTjbJ0pPMhgihIDrShKkWI3rnF7bCfiNJ+52LQ== X-Received: by 2002:ad4:5d4e:0:b0:623:690c:3ce6 with SMTP id jk14-20020ad45d4e000000b00623690c3ce6mr29737209qvb.32.1684932128708; Wed, 24 May 2023 05:42:08 -0700 (PDT) Received: from ?IPV6:2607:fea8:51df:4200::933? ([2607:fea8:51df:4200::933]) by smtp.gmail.com with ESMTPSA id et4-20020a056214176400b005fdbcab3065sm3537243qvb.72.2023.05.24.05.42.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 24 May 2023 05:42:08 -0700 (PDT) Message-ID: Date: Wed, 24 May 2023 08:42:07 -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 1/3] PR tree-optimization/109695 - Choose better initial values for ranger. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------a5oMkKCI1gZ4rtmdUDOqtIVa" 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. --------------a5oMkKCI1gZ4rtmdUDOqtIVa Content-Type: multipart/alternative; boundary="------------JgO92i7rKMWciagvTiYuJCCK" --------------JgO92i7rKMWciagvTiYuJCCK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Instead of defaulting to an initial value of VARYING before resolving cycles, try folding the statement using available global values instead.  THis can give us a much better initial approximation, especially in cases where there are no dependencies, ie    f_45 = 77 This implements suggestion 2) in comment 22 of the PR: 2) The initial value we choose is simply VARYING. This is why 1) alone won't solve this problem.  when we push _1947 on the stack, we set it to VARYING..  then proceed down along chain of other dependencies Driven by _1011 which are resolved first. When we get back to _1947 finally, we see:   _1947 = 77; which evaluated to [77, 77], and is this different than VARYING, and thus would cause a new timestamp to be created even if (1) were implemented. TODO: When setting the initial value in the cache, rather than being lazy and using varying, we should invoke fold_stmt using get_global_range_query ().   This will fold the stmt and produce a result which resolved any ssa-names just using known global values. THis should not be expensive, and gives us a reasonable first approximation.  And for cases like _1947, the final result as well. I stop doing this after inlining because there are some statements which change their evaluation (ie, BUILTIN_IN_CONSTANT)  which causes headaches... and then we  just default to VARYING again or anything which doesn't have a  global SSA range set.. There is a 2.7% hit to VRP to evaluate each statement this additional time, but only 0.09% to overall compile time. Besides, we get it back later in the patch set.. :-) Bootstraps on x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew --------------JgO92i7rKMWciagvTiYuJCCK-- --------------a5oMkKCI1gZ4rtmdUDOqtIVa Content-Type: text/x-patch; charset=UTF-8; name="0001-Choose-better-initial-values-for-ranger.patch" Content-Disposition: attachment; filename="0001-Choose-better-initial-values-for-ranger.patch" Content-Transfer-Encoding: base64 RnJvbSAzYTIwZTFhMzMyNzdiY2IxNmQ2ODFiNGYzNjMzZmNmOGNjZTVhODUy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVv ZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyMyBNYXkgMjAy MyAxNToxMTo0NCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBDaG9vc2Ug YmV0dGVyIGluaXRpYWwgdmFsdWVzIGZvciByYW5nZXIuCgpJbnN0ZWFkIG9m IGRlZmF1bHRpbmcgdG8gVkFSWUlORywgZm9sZCB0aGUgc3RtdCB1c2luZyBq dXN0IGdsb2JhbCByYW5nZXMuCgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTA5 Njk1CgkqIGdpbXBsZS1yYW5nZS1jYWNoZS5jYyAocmFuZ2VyX2NhY2hlOjpn ZXRfZ2xvYmFsX3JhbmdlKTogQ2FsbAoJZm9sZF9yYW5nZSB3aXRoIGdsb2Jh bCBxdWVyeSB0byBjaG9vc2UgYW4gaW5pdGlhbCB2YWx1ZS4KLS0tCiBnY2Mv Z2ltcGxlLXJhbmdlLWNhY2hlLmNjIHwgMTcgKysrKysrKysrKysrKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsZS1yYW5nZS1jYWNoZS5jYyBi L2djYy9naW1wbGUtcmFuZ2UtY2FjaGUuY2MKaW5kZXggMDdjNjllZjg1OGEu LjhkZGZkOTQyNmMwIDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxlLXJhbmdlLWNh Y2hlLmNjCisrKyBiL2djYy9naW1wbGUtcmFuZ2UtY2FjaGUuY2MKQEAgLTk1 MSw3ICs5NTEsMjIgQEAgcmFuZ2VyX2NhY2hlOjpnZXRfZ2xvYmFsX3Jhbmdl ICh2cmFuZ2UgJnIsIHRyZWUgbmFtZSwgYm9vbCAmY3VycmVudF9wKQogCQl8 fCBtX3RlbXBvcmFsLT5jdXJyZW50X3AgKG5hbWUsIG1fZ29yaS5kZXBlbmQx IChuYW1lKSwKIAkJCQkJICBtX2dvcmkuZGVwZW5kMiAobmFtZSkpOwogICBl bHNlCi0gICAgbV9nbG9iYWxzLnNldF9yYW5nZSAobmFtZSwgcik7CisgICAg eworICAgICAgLy8gSWYgbm8gZ2xvYmFsIHZhbHVlIGhhcyBiZWVuIHNldCBh bmQgdmFsdWUgaXMgVkFSWUlORywgZm9sZCB0aGUgc3RtdAorICAgICAgLy8g dXNpbmcganVzdCBnbG9iYWwgcmFuZ2VzIHRvIGdldCBhIGJldHRlciBpbml0 aWFsIHZhbHVlLgorICAgICAgLy8gQWZ0ZXIgaW5saW5pbmcgd2UgdGVuZCB0 byBkZWNpZGUgc29tZSB0aGluZ3MgYXJlIGNvbnN0YW50LCBzbworICAgICAg Ly8gc28gbm90IGRvIHRoaXMgZXZhbHVhdGlvbiBhZnRlciBpbmxpbmluZy4K KyAgICAgIGlmIChyLnZhcnlpbmdfcCAoKSAmJiAhY2Z1bi0+YWZ0ZXJfaW5s aW5pbmcpCisJeworCSAgZ2ltcGxlICpzID0gU1NBX05BTUVfREVGX1NUTVQg KG5hbWUpOworCSAgaWYgKGdpbXBsZV9nZXRfbGhzIChzKSA9PSBuYW1lKQor CSAgICB7CisJICAgICAgaWYgKCFmb2xkX3JhbmdlIChyLCBzLCBnZXRfZ2xv YmFsX3JhbmdlX3F1ZXJ5ICgpKSkKKwkJZ2ltcGxlX3JhbmdlX2dsb2JhbCAo ciwgbmFtZSk7CisJICAgIH0KKwl9CisgICAgICBtX2dsb2JhbHMuc2V0X3Jh bmdlIChuYW1lLCByKTsKKyAgICB9CiAKICAgLy8gSWYgdGhlIGV4aXN0aW5n IHZhbHVlIHdhcyBub3QgY3VycmVudCwgbWFyayBpdCBhcyBhbHdheXMgY3Vy cmVudC4KICAgaWYgKCFjdXJyZW50X3ApCi0tIAoyLjQwLjEKCg== --------------a5oMkKCI1gZ4rtmdUDOqtIVa--