From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23439 invoked by alias); 23 Jun 2017 10:19:50 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 22797 invoked by uid 89); 23 Jun 2017 10:19:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=7130, Simply, 10001 X-HELO: mail-ua0-f181.google.com Received: from mail-ua0-f181.google.com (HELO mail-ua0-f181.google.com) (209.85.217.181) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 23 Jun 2017 10:19:47 +0000 Received: by mail-ua0-f181.google.com with SMTP id 70so34396661uau.0 for ; Fri, 23 Jun 2017 03:19:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=678vnyL2B6OWxuX4hK4Ns6dMlZI0pgNcxqpFCfqmSgM=; b=mNagSjJDDezRMkkYEYH5cR6QnvkyyFFTOWrPO34r0zAzHliT3gvX+vlVMyzfzk2Nt3 9v0zfJNFU1AEnBix5CwfL5TJqL05sGskRpdG4SNBMsAqABzed9cz+0Bi4fi8Ggu+Ufmi gw0zt5Njj3C0kZLGdW9pJ1UEHouExYzGGwkSx0WM2ZcCqxtKGHPL0RSrYr6bASLHhzxD 1nBTVXJ23gR2sNbqI8eSaOsBPoCHqvZQFopuSD/VI8zXIcVq8MciIsCp4H9fHNbBt8gv EvPF7VCehra6tZNp33/vKPgD++6CSdSLFqk5Z7D2RPbiJKidqP100P89ASECxZAoY4Qv B/oQ== X-Gm-Message-State: AKS2vOzpROmehxsdrbyM64Amj785lqULId37I4btAEjXDZXmpt38WLyc WJb/DgZ8oXQVD/F2b5gAJm1iHjaeKw== X-Received: by 10.159.48.1 with SMTP id h1mr5687958uab.102.1498213185676; Fri, 23 Jun 2017 03:19:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.49.142 with HTTP; Fri, 23 Jun 2017 03:19:44 -0700 (PDT) In-Reply-To: References: From: "Bin.Cheng" Date: Fri, 23 Jun 2017 10:19:00 -0000 Message-ID: Subject: Re: [PATCH GCC][09/13]Simply cost model merges partitions with the same references To: Richard Biener Cc: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="f403045e1f42bb00c605529df093" X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg01752.txt.bz2 --f403045e1f42bb00c605529df093 Content-Type: text/plain; charset="UTF-8" Content-length: 2900 On Mon, Jun 19, 2017 at 4:20 PM, Richard Biener wrote: > On Mon, Jun 19, 2017 at 3:40 PM, Bin.Cheng wrote: >> On Wed, Jun 14, 2017 at 2:54 PM, Richard Biener >> wrote: >>> On Mon, Jun 12, 2017 at 7:03 PM, Bin Cheng wrote: >>>> Hi, >>>> Current primitive cost model merges partitions with data references sharing the same >>>> base address. I believe it's designed to maximize data reuse in distribution, but >>>> that should be done by dedicated data reusing algorithm. At this stage of merging, >>>> we should be conservative and only merge partitions with the same references. >>>> Bootstrap and test on x86_64 and AArch64. Is it OK? >>> >>> Well, I'd say "conservative" is merging more, not less. For example >>> splitting a[i+1] from a[i] >>> would be bad(?), so I'd see to allow unequal DR_INIT as "equal" for >>> merging. Maybe >>> DR_INIT within a cacheline or so. >>> >>> How many extra distributions in say SPEC do you get from this change alone? >> Hi, >> I collected data for spec2006 only with/without this patch. I am a >> bit surprised that it doesn't change the number of distributed loops. >>> >>> It shows also that having partition->reads_and_writes would be nice >>> ... the code duplication >> Yeah, I merged read/write data references in previous patch, now this >> duplication is gone. Update patch attached. Is it OK? > > + gcc_assert (i < datarefs_vec.length ()); > + dr1 = datarefs_vec[i]; > > these asserts are superfluous -- vec::operator[] does them as well. > > Ok if you remove them. Done. I realized I made mistakes when measuring the impact of this patch. This patch only apparently causes failure of gcc.dg/tree-ssa/ldist-6.c, so here is the updated patch. I also collected the number of distributed loops in spec2k6 as below: trunk: 5882 only this patch: 7130 whole patch series: 5237 So the conclusion is, this patch does aggressive distribution like ldist-6.c, which means worse data-locality. The following patch does more fusion which mitigates impact of this patch and results in conservative distribution overall. But as we lack of data locality cost model, ldist-6.c remains failed even after applying whole patch series. Hmm, a cache-sensitive cost model is need for several passes now, distribution, prefetch and (possible) interchange. Richard, do you have second comment based on the new data? Thanks, bin 2017-06-20 Bin Cheng * tree-loop-distribution.c (ref_base_address): Delete. (similar_memory_accesses): Rename ... (share_memory_accesses): ... to this. Check if partitions access the same memory reference. (distribute_loop): Call share_memory_accesses. gcc/testsuite/ChangeLog 2017-06-20 Bin Cheng * gcc.dg/tree-ssa/ldist-6.c: XFAIL. --f403045e1f42bb00c605529df093 Content-Type: text/x-patch; charset="US-ASCII"; name="0008-share-memory-access-20170608.txt.patch" Content-Disposition: attachment; filename="0008-share-memory-access-20170608.txt.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j49pfb280 Content-length: 5673 RnJvbSBhMDAyZDBhODhhYjllOTgxZDljNTdiZDhmMTIwMzA3MjI5MDYyM2Fk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCaW4gQ2hlbmcgPGJp bmNoZTAxQGUxMDg0NTEtbGluLmNhbWJyaWRnZS5hcm0uY29tPgpEYXRlOiBG cmksIDkgSnVuIDIwMTcgMTI6NDE6MzYgKzAxMDAKU3ViamVjdDogW1BBVENI IDA4LzEzXSBzaGFyZS1tZW1vcnktYWNjZXNzLTIwMTcwNjA4LnR4dAoKLS0t CiBnY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9sZGlzdC02LmMgfCAg MiArLQogZ2NjL3RyZWUtbG9vcC1kaXN0cmlidXRpb24uYyAgICAgICAgICAg IHwgNjkgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3Nh L2xkaXN0LTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL2xk aXN0LTYuYwppbmRleCA4ZWIxYzYyLi5lMGE2OGQ4IDEwMDY0NAotLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9sZGlzdC02LmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvbGRpc3QtNi5jCkBAIC0z NCw0ICszNCw0IEBAIGludCBsb29wMSAoaW50IGspCiAgIHJldHVybiBhWzEw MDAtMl0gKyBiWzEwMDAtMV0gKyBjWzEwMDAtMl0gKyBkWzEwMDAtMl07CiB9 CiAKLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZGlz dHJpYnV0ZWQ6IHNwbGl0IHRvIDIgbG9vcHMiIDAgImxkaXN0IiB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZGlzdHJp YnV0ZWQ6IHNwbGl0IHRvIDIgbG9vcHMiIDAgImxkaXN0IiB7IHhmYWlsICot Ki0qIH0gfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdHJlZS1sb29wLWRpc3Ry aWJ1dGlvbi5jIGIvZ2NjL3RyZWUtbG9vcC1kaXN0cmlidXRpb24uYwppbmRl eCBlYWZkMTE5Li4xMTk4NjNmIDEwMDY0NAotLS0gYS9nY2MvdHJlZS1sb29w LWRpc3RyaWJ1dGlvbi5jCisrKyBiL2djYy90cmVlLWxvb3AtZGlzdHJpYnV0 aW9uLmMKQEAgLTEyNjgsMzAgKzEyNjgsMTYgQEAgY2xhc3NpZnlfcGFydGl0 aW9uIChsb29wX3AgbG9vcCwgc3RydWN0IGdyYXBoICpyZGcsIHBhcnRpdGlv biAqcGFydGl0aW9uKQogICAgIH0KIH0KIAotLyogRm9yIGEgZGF0YSByZWZl cmVuY2UgUkVGLCByZXR1cm4gdGhlIGRlY2xhcmF0aW9uIG9mIGl0cyBiYXNl Ci0gICBhZGRyZXNzIG9yIE5VTExfVFJFRSBpZiB0aGUgYmFzZSBpcyBub3Qg ZGV0ZXJtaW5lZC4gICovCi0KLXN0YXRpYyB0cmVlCi1yZWZfYmFzZV9hZGRy ZXNzIChkYXRhX3JlZmVyZW5jZV9wIGRyKQotewotICB0cmVlIGJhc2VfYWRk cmVzcyA9IERSX0JBU0VfQUREUkVTUyAoZHIpOwotICBpZiAoYmFzZV9hZGRy ZXNzCi0gICAgICAmJiBUUkVFX0NPREUgKGJhc2VfYWRkcmVzcykgPT0gQURE Ul9FWFBSKQotICAgIHJldHVybiBUUkVFX09QRVJBTkQgKGJhc2VfYWRkcmVz cywgMCk7Ci0KLSAgcmV0dXJuIGJhc2VfYWRkcmVzczsKLX0KLQotLyogUmV0 dXJucyB0cnVlIHdoZW4gUEFSVElUSU9OMSBhbmQgUEFSVElUSU9OMiBoYXZl IHNpbWlsYXIgbWVtb3J5Ci0gICBhY2Nlc3NlcyBpbiBSREcuICAqLworLyog UmV0dXJucyB0cnVlIHdoZW4gUEFSVElUSU9OMSBhbmQgUEFSVElUSU9OMiBh Y2Nlc3MgdGhlIHNhbWUgbWVtb3J5CisgICBvYmplY3QgaW4gUkRHLiAgKi8K IAogc3RhdGljIGJvb2wKLXNpbWlsYXJfbWVtb3J5X2FjY2Vzc2VzIChzdHJ1 Y3QgZ3JhcGggKnJkZywgcGFydGl0aW9uICpwYXJ0aXRpb24xLAotCQkJIHBh cnRpdGlvbiAqcGFydGl0aW9uMikKK3NoYXJlX21lbW9yeV9hY2Nlc3NlcyAo c3RydWN0IGdyYXBoICpyZGcsCisJCSAgICAgICBwYXJ0aXRpb24gKnBhcnRp dGlvbjEsIHBhcnRpdGlvbiAqcGFydGl0aW9uMikKIHsKLSAgdW5zaWduZWQg aSwgaiwgaywgbDsKKyAgdW5zaWduZWQgaSwgajsKICAgYml0bWFwX2l0ZXJh dG9yIGJpLCBiajsKLSAgZGF0YV9yZWZlcmVuY2VfcCByZWYxLCByZWYyOwor ICBkYXRhX3JlZmVyZW5jZV9wIGRyMSwgZHIyOwogCiAgIC8qIEZpcnN0IGNo ZWNrIHdoZXRoZXIgaW4gdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgdHdvIHBh cnRpdGlvbnMgYXJlCiAgICAgIGFueSBsb2FkcyBvciBzdG9yZXMuICBDb21t b24gbG9hZHMgYXJlIHRoZSBzaXR1YXRpb24gdGhhdCBoYXBwZW5zCkBAIC0x MzAxLDIzICsxMjg3LDMwIEBAIHNpbWlsYXJfbWVtb3J5X2FjY2Vzc2VzIChz dHJ1Y3QgZ3JhcGggKnJkZywgcGFydGl0aW9uICpwYXJ0aXRpb24xLAogCXx8 IFJER19NRU1fUkVBRFNfU1RNVCAocmRnLCBpKSkKICAgICAgIHJldHVybiB0 cnVlOwogCi0gIC8qIFRoZW4gY2hlY2sgYWxsIGRhdGEtcmVmZXJlbmNlcyBh Z2FpbnN0IGVhY2ggb3RoZXIuICAqLwotICBFWEVDVVRFX0lGX1NFVF9JTl9C SVRNQVAgKHBhcnRpdGlvbjEtPnN0bXRzLCAwLCBpLCBiaSkKLSAgICBpZiAo UkRHX01FTV9XUklURV9TVE1UIChyZGcsIGkpCi0JfHwgUkRHX01FTV9SRUFE U19TVE1UIChyZGcsIGkpKQotICAgICAgRVhFQ1VURV9JRl9TRVRfSU5fQklU TUFQIChwYXJ0aXRpb24yLT5zdG10cywgMCwgaiwgYmopCi0JaWYgKFJER19N RU1fV1JJVEVfU1RNVCAocmRnLCBqKQotCSAgICB8fCBSREdfTUVNX1JFQURT X1NUTVQgKHJkZywgaikpCi0JICB7Ci0JICAgIEZPUl9FQUNIX1ZFQ19FTFQg KFJER19EQVRBUkVGUyAocmRnLCBpKSwgaywgcmVmMSkKLQkgICAgICB7Ci0J CXRyZWUgYmFzZTEgPSByZWZfYmFzZV9hZGRyZXNzIChyZWYxKTsKLQkJaWYg KGJhc2UxKQotCQkgIEZPUl9FQUNIX1ZFQ19FTFQgKFJER19EQVRBUkVGUyAo cmRnLCBqKSwgbCwgcmVmMikKLQkJICAgIGlmIChiYXNlMSA9PSByZWZfYmFz ZV9hZGRyZXNzIChyZWYyKSkKLQkJICAgICAgcmV0dXJuIHRydWU7Ci0JICAg ICAgfQotCSAgfQorICAvKiBUaGVuIGNoZWNrIHdoZXRoZXIgdGhlIHR3byBw YXJ0aXRpb25zIGFjY2VzcyB0aGUgc2FtZSBtZW1vcnkgb2JqZWN0LiAgKi8K KyAgRVhFQ1VURV9JRl9TRVRfSU5fQklUTUFQIChwYXJ0aXRpb24xLT5kYXRh cmVmcywgMCwgaSwgYmkpCisgICAgeworICAgICAgZHIxID0gZGF0YXJlZnNf dmVjW2ldOworCisgICAgICBpZiAoIURSX0JBU0VfQUREUkVTUyAoZHIxKQor CSAgfHwgIURSX09GRlNFVCAoZHIxKSB8fCAhRFJfSU5JVCAoZHIxKSB8fCAh RFJfU1RFUCAoZHIxKSkKKwljb250aW51ZTsKKworICAgICAgRVhFQ1VURV9J Rl9TRVRfSU5fQklUTUFQIChwYXJ0aXRpb24yLT5kYXRhcmVmcywgMCwgaiwg YmopCisJeworCSAgZHIyID0gZGF0YXJlZnNfdmVjW2pdOworCisJICBpZiAo IURSX0JBU0VfQUREUkVTUyAoZHIyKQorCSAgICAgIHx8ICFEUl9PRkZTRVQg KGRyMikgfHwgIURSX0lOSVQgKGRyMikgfHwgIURSX1NURVAgKGRyMikpCisJ ICAgIGNvbnRpbnVlOworCisJICBpZiAob3BlcmFuZF9lcXVhbF9wIChEUl9C QVNFX0FERFJFU1MgKGRyMSksIERSX0JBU0VfQUREUkVTUyAoZHIyKSwgMCkK KwkgICAgICAmJiBvcGVyYW5kX2VxdWFsX3AgKERSX09GRlNFVCAoZHIxKSwg RFJfT0ZGU0VUIChkcjIpLCAwKQorCSAgICAgICYmIG9wZXJhbmRfZXF1YWxf cCAoRFJfSU5JVCAoZHIxKSwgRFJfSU5JVCAoZHIyKSwgMCkKKwkgICAgICAm JiBvcGVyYW5kX2VxdWFsX3AgKERSX1NURVAgKGRyMSksIERSX1NURVAgKGRy MiksIDApKQorCSAgICByZXR1cm4gdHJ1ZTsKKwl9CisgICAgfQogCiAgIHJl dHVybiBmYWxzZTsKIH0KQEAgLTE2NTQsNyArMTY0Nyw3IEBAIGRpc3RyaWJ1 dGVfbG9vcCAoc3RydWN0IGxvb3AgKmxvb3AsIHZlYzxnaW1wbGUgKj4gc3Rt dHMsCiAgICAgICBmb3IgKGludCBqID0gaSArIDE7CiAJICAgcGFydGl0aW9u cy5pdGVyYXRlIChqLCAmcGFydGl0aW9uKTsgKytqKQogCXsKLQkgIGlmIChz aW1pbGFyX21lbW9yeV9hY2Nlc3NlcyAocmRnLCBpbnRvLCBwYXJ0aXRpb24p KQorCSAgaWYgKHNoYXJlX21lbW9yeV9hY2Nlc3NlcyAocmRnLCBpbnRvLCBw YXJ0aXRpb24pKQogCSAgICB7CiAJICAgICAgcGFydGl0aW9uX21lcmdlX2lu dG8gKGludG8sIHBhcnRpdGlvbiwgRlVTRV9TSEFSRV9SRUYpOwogCSAgICAg IHBhcnRpdGlvbnMudW5vcmRlcmVkX3JlbW92ZSAoaik7Ci0tIAoxLjkuMQoK --f403045e1f42bb00c605529df093--