From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 101715 invoked by alias); 11 May 2018 12:54:02 -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 101230 invoked by uid 89); 11 May 2018 12:54:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=regional X-HELO: mail-lf0-f53.google.com Received: from mail-lf0-f53.google.com (HELO mail-lf0-f53.google.com) (209.85.215.53) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 11 May 2018 12:53:59 +0000 Received: by mail-lf0-f53.google.com with SMTP id h197-v6so7762165lfg.11 for ; Fri, 11 May 2018 05:53:59 -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=WT/b2Fgtf3YI+46lDmczM+AGLbqQ5VRugJumjbw1HqA=; b=gbNnnRLXmz8VDApzz1LW5pAa7fCN3+etnMJ39cf0Uv9oDkA1wNnZi0V+aS+bH7rlfU O8JckqPiGDvsvK6BVv8ddbbT/SiXFIKOIWdl4WsZk98mkms+4o9RerjkkiRYe6VlC4Fl 0krADdfThMpFg+k9ZNxaoIGEUoeQZ6D2XrHk4l8xGQAVWLG4D60sZO3fg0RqRoe1CsDk LILSze/A+tq7NjBFMCWJmMlkBwjEtxzMxaGHtW/yCmoVHQZgm2V5QCufKmKE0NkiBg26 LVqJxTxYUDjIRns9gLFXKMgz3RXyzx2CZ1pxeqxoVavxBJOt70nqaBmP5Olqen1C4xrX u1fg== X-Gm-Message-State: ALKqPwcd3Me+61LDTmRFMoumhdSl7gQ4ly6v8+DtdxtnMR9seDhQP/bA IKabC4mq+f9z1ZM0r0zDcWWJ1sQQ3XlRNI7GxYrGP0ZZ X-Google-Smtp-Source: AB8JxZq3fTLTqp0eqW3z5wAITGU0quliguVm2n1EBPf0yGZD1Yq5Wo+fjdUPqLeKysTwLc1qs2kwZdTL/Jn3wy4eAog= X-Received: by 2002:a19:d00e:: with SMTP id h14-v6mr1385728lfg.133.1526043237600; Fri, 11 May 2018 05:53:57 -0700 (PDT) MIME-Version: 1.0 Received: by 10.46.132.196 with HTTP; Fri, 11 May 2018 05:53:57 -0700 (PDT) In-Reply-To: References: From: Richard Biener Date: Fri, 11 May 2018 13:09:00 -0000 Message-ID: Subject: Re: [PATCH GCC][4/6]Support regional coalesce and live range computation To: Bin Cheng Cc: "gcc-patches@gcc.gnu.org" , nd Content-Type: multipart/mixed; boundary="00000000000016ec3e056beda1d6" X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00558.txt.bz2 --00000000000016ec3e056beda1d6 Content-Type: text/plain; charset="UTF-8" Content-length: 2825 On Fri, May 4, 2018 at 6:23 PM, Bin Cheng wrote: > Hi, > Following Jeff's suggestion, I am now using existing tree-ssa-live.c and > tree-ssa-coalesce.c to compute register pressure, rather than inventing > another live range solver. > > The major change is to record region's basic blocks in var_map and use that > information in computation, rather than FOR_EACH_BB_FN. For now only loop > and function type regions are supported. The default one is function type > region which is used in out-of-ssa. Loop type region will be used in next > patch to compute information for a loop. > > Bootstrap and test on x86_64 and AArch64 ongoing. Any comments? I believe your changes to create_outofssa_var_map should be done differently by simply only calling it from the coalescing context and passing in the var_map rather than initializing it therein and returning it. This also means the coalesce_vars_p flag in the var_map structure looks somewhat out-of-place. That is, it looks you could do with many less changes if you refactored what calls what slightly? For example the extra arg to gimple_can_coalesce_p looks unneeded. Just as a note I do have a CFG helper pending that computes RPO order for SEME regions (attached). loops are SEME regions, so your RTYPE_SESE is somewhat odd - I guess RTYPE_LOOP exists only because of the convenience of passing in a loop * to the "constructor". I'd rather drop this region_type thing and always assume a SEME region - at least I didn't see anything in the patch that depends on any of the forms apart from the initial BB gathering. Thanks, Richard. > Thanks, > bin > 2018-04-27 Bin Cheng > > * tree-outof-ssa.c (remove_ssa_form): Update use. > * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support regional > coalesce. > (coalesce_with_default): Update comment. > (create_outofssa_var_map): Support regional coalesce. Rename to... > (create_var_map): ...this. > (coalesce_partitions): Support regional coalesce. > (gimple_can_coalesce_p, compute_optimized_partition_bases): Ditto. > (coalesce_ssa_name): Ditto. > * tree-ssa-coalesce.h (coalesce_ssa_name, gimple_can_coalesce_p): > Add parameter in declarations. > * tree-ssa-live.c (init_var_map, delete_var_map): Support regional > coalesce. > (new_tree_live_info, loe_visit_block, set_var_live_on_entry): Ditto. > (calculate_live_on_exit, verify_live_on_entry): Ditto. > * tree-ssa-live.h (enum region_type): New. > (struct _var_map): New fields. > (init_var_map): Add parameter in declaration. > (function_region_p, region_contains_p): New. > * tree-ssa-uncprop.c (uncprop_into_successor_phis): Update uses. --00000000000016ec3e056beda1d6 Content-Type: application/octet-stream; name=p Content-Disposition: attachment; filename=p Content-Transfer-Encoding: base64 X-Attachment-Id: f_jh1ypjqw1 Content-length: 5978 SW5kZXg6IGVhcmx5LWx0by1kZWJ1Zy9nY2MvY2ZnYW5hbC5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGVhcmx5LWx0by1kZWJ1Zy5vcmlnL2djYy9j ZmdhbmFsLmMJMjAxNy0xMS0yMiAxMDo1MToyOS45MDAxMzY0NjUgKzAxMDAK KysrIGVhcmx5LWx0by1kZWJ1Zy9nY2MvY2ZnYW5hbC5jCTIwMTctMTEtMjIg MTA6NTE6NTQuMjk2NTI2OTIwICswMTAwCkBAIC0xMDU3LDYgKzEwNTcsMTA5 IEBAIHByZV9hbmRfcmV2X3Bvc3Rfb3JkZXJfY29tcHV0ZSAoaW50ICpwcmUK ICAgcmV0dXJuIHByZV9vcmRlcl9udW07CiB9CiAKKy8qIFVubGluZSBwcmVf YW5kX3Jldl9wb3N0X29yZGVyX2NvbXB1dGUgd2UgZmlsbCByZXZfcG9zdF9v cmRlciBiYWNrd2FyZHMKKyAgIHNvIGl0ZXJhdGluZyBpbiBSUE8gb3JkZXIg bmVlZHMgdG8gc3RhcnQgd2l0aCByZXZfcG9zdF9vcmRlcltuIC0gMV0KKyAg IGdvaW5nIHRvIHJldl9wb3N0X29yZGVyWzBdLiAgKi8KKworaW50CityZXZf cG9zdF9vcmRlcl9hbmRfbWFya19kZnNfYmFja19zZW1lIChzdHJ1Y3QgZnVu Y3Rpb24gKmZuLCBlZGdlIGVudHJ5LAorCQkJCSAgICAgICBiaXRtYXAgZXhp dF9iYnMsCisJCQkJICAgICAgIGludCAqcmV2X3Bvc3Rfb3JkZXIpCit7Cisg IGludCBwcmVfb3JkZXJfbnVtID0gMDsKKyAgaW50IHJldl9wb3N0X29yZGVy X251bSA9IDA7CisKKyAgLyogQWxsb2NhdGUgc3RhY2sgZm9yIGJhY2stdHJh Y2tpbmcgdXAgQ0ZHLiAgKi8KKyAgYXV0b192ZWM8ZWRnZV9pdGVyYXRvciwg MjA+IHN0YWNrIChuX2Jhc2ljX2Jsb2Nrc19mb3JfZm4gKGZuKSArIDEpOwor CisgIGludCAqcHJlID0gWE5FV1ZFQyAoaW50LCAyICogbGFzdF9iYXNpY19i bG9ja19mb3JfZm4gKGZuKSk7CisgIGludCAqcG9zdCA9IHByZSArIGxhc3Rf YmFzaWNfYmxvY2tfZm9yX2ZuIChmbik7CisKKyAgLyogPz8/ICBXZSBjb3Vs ZCB1c2UgQkIgZmxhZ3MgdGhhdCBhcmUgZ3VhcmFudGVlZCB0byBiZSBjbGVh ciwKKyAgICAgY2xlYXJpbmcgdGhlbSBhZ2FpbiBpbiBhIHN3ZWVwIG92ZXIg dGhlIGZvdW5kIGJsb2NrcyBhdCB0aGUgZW5kLiAgKi8KKyAgLyogQml0bWFw IHRvIHRyYWNrIG5vZGVzIHRoYXQgaGF2ZSBiZWVuIHZpc2l0ZWQuICAqLwor ICBhdXRvX2JpdG1hcCB2aXNpdGVkOworICAvKiBCaXRtYXAgdG8gdHJhY2sg d2hpY2ggbm9kZXMgd2hhdmUgcG9zdFtdIGFzc2lnbmVkIHRvIGF2b2lkCisg ICAgIHplcm9pbmcgcG9zdC4gICovCisgIGF1dG9fYml0bWFwIHBvc3RfYXNz aWduZWQ7CisKKyAgLyogUHVzaCB0aGUgZmlyc3QgZWRnZSBvbiB0byB0aGUg c3RhY2suICBCdWlsZCBhIGZha2UgZWRnZSB2ZWN0b3IKKyAgICAgZm9yIHRo aXMgd2UgY2FuIGNhbGwgZWlfc3RhcnQgb24uICAqLworICB2ZWM8ZWRnZSwg dmFfZ2M+IGR1bW15OworICBkdW1teS5lbWJlZGRlZF9pbml0ICgxLCAwLCAw KTsKKyAgZHVtbXkucXVpY2tfcHVzaCAoZW50cnkpOworICB2ZWM8ZWRnZSwg dmFfZ2M+ICpkdW1teXAgPSAmZHVtbXk7CisgIHN0YWNrLnF1aWNrX3B1c2gg KGVpX3N0YXJ0IChkdW1teXApKTsKKworICB3aGlsZSAoIXN0YWNrLmlzX2Vt cHR5ICgpKQorICAgIHsKKyAgICAgIGJhc2ljX2Jsb2NrIHNyYzsKKyAgICAg IGJhc2ljX2Jsb2NrIGRlc3Q7CisKKyAgICAgIC8qIExvb2sgYXQgdGhlIGVk Z2Ugb24gdGhlIHRvcCBvZiB0aGUgc3RhY2suICAqLworICAgICAgZWRnZV9p dGVyYXRvciBlaSA9IHN0YWNrLmxhc3QgKCk7CisgICAgICBzcmMgPSBlaV9l ZGdlIChlaSktPnNyYzsKKyAgICAgIGRlc3QgPSBlaV9lZGdlIChlaSktPmRl c3Q7CisgICAgICBlaV9lZGdlIChlaSktPmZsYWdzICY9IH5FREdFX0RGU19C QUNLOworCisgICAgICAvKiBDaGVjayBpZiB0aGUgZWRnZSBkZXN0aW5hdGlv biBoYXMgYmVlbiB2aXNpdGVkIHlldC4gICovCisgICAgICBpZiAoISBiaXRt YXBfYml0X3AgKGV4aXRfYmJzLCBkZXN0LT5pbmRleCkKKwkgICYmICEgYml0 bWFwX2JpdF9wICh2aXNpdGVkLCBkZXN0LT5pbmRleCkpCisJeworCSAgLyog TWFyayB0aGF0IHdlIGhhdmUgdmlzaXRlZCB0aGUgZGVzdGluYXRpb24uICAq LworCSAgYml0bWFwX3NldF9iaXQgKHZpc2l0ZWQsIGRlc3QtPmluZGV4KTsK KworCSAgcHJlW2Rlc3QtPmluZGV4XSA9IHByZV9vcmRlcl9udW0rKzsKKwor CSAgaWYgKEVER0VfQ09VTlQgKGRlc3QtPnN1Y2NzKSA+IDApCisJICAgIC8q IFNpbmNlIHRoZSBERVNUIG5vZGUgaGFzIGJlZW4gdmlzaXRlZCBmb3IgdGhl IGZpcnN0CisJICAgICAgIHRpbWUsIGNoZWNrIGl0cyBzdWNjZXNzb3JzLiAg Ki8KKwkgICAgc3RhY2sucXVpY2tfcHVzaCAoZWlfc3RhcnQgKGRlc3QtPnN1 Y2NzKSk7CisJICBlbHNlCisJICAgIHsKKwkgICAgICAvKiBUaGVyZSBhcmUg bm8gc3VjY2Vzc29ycyBmb3IgdGhlIERFU1Qgbm9kZSBzbyBhc3NpZ24KKwkJ IGl0cyByZXZlcnNlIGNvbXBsZXRpb24gbnVtYmVyLiAgKi8KKwkgICAgICBw b3N0W2Rlc3QtPmluZGV4XSA9IHJldl9wb3N0X29yZGVyX251bTsKKwkgICAg ICBiaXRtYXBfc2V0X2JpdCAocG9zdF9hc3NpZ25lZCwgZGVzdC0+aW5kZXgp OworCSAgICAgIHJldl9wb3N0X29yZGVyW3Jldl9wb3N0X29yZGVyX251bV0g PSBkZXN0LT5pbmRleDsKKwkgICAgICByZXZfcG9zdF9vcmRlcl9udW0rKzsK KwkgICAgfQorCX0KKyAgICAgIGVsc2UKKwl7CisJICBpZiAoYml0bWFwX2Jp dF9wICh2aXNpdGVkLCBkZXN0LT5pbmRleCkKKwkgICAgICAmJiBwcmVbc3Jj LT5pbmRleF0gPj0gcHJlW2Rlc3QtPmluZGV4XQorCSAgICAgICYmICEgYml0 bWFwX2JpdF9wIChwb3N0X2Fzc2lnbmVkLCBkZXN0LT5pbmRleCkpCisJICAg IGVpX2VkZ2UgKGVpKS0+ZmxhZ3MgfD0gRURHRV9ERlNfQkFDSzsKKworCSAg aWYgKGVpX29uZV9iZWZvcmVfZW5kX3AgKGVpKSkKKwkgICAgeworCSAgICAg IC8qIFRoZXJlIGFyZSBubyBtb3JlIHN1Y2Nlc3NvcnMgZm9yIHRoZSBTUkMg bm9kZQorCQkgc28gYXNzaWduIGl0cyByZXZlcnNlIGNvbXBsZXRpb24gbnVt YmVyLiAgKi8KKwkgICAgICBwb3N0W3NyYy0+aW5kZXhdID0gcmV2X3Bvc3Rf b3JkZXJfbnVtOworCSAgICAgIGJpdG1hcF9zZXRfYml0IChwb3N0X2Fzc2ln bmVkLCBzcmMtPmluZGV4KTsKKwkgICAgICByZXZfcG9zdF9vcmRlcltyZXZf cG9zdF9vcmRlcl9udW1dID0gc3JjLT5pbmRleDsKKwkgICAgICByZXZfcG9z dF9vcmRlcl9udW0rKzsKKwkgICAgfQorCisJICBpZiAoIWVpX29uZV9iZWZv cmVfZW5kX3AgKGVpKSkKKwkgICAgZWlfbmV4dCAoJnN0YWNrLmxhc3QgKCkp OworCSAgZWxzZQorCSAgICB7CisJICAgICAgc3RhY2sucG9wICgpOworCSAg ICAgIGlmIChlaV9lZGdlIChzdGFjay5sYXN0ICgpKSA9PSBlbnRyeSkKKwkJ YnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorCisgIGZyZWUgKHByZSk7CisK KyAgcmV0dXJuIHJldl9wb3N0X29yZGVyX251bTsKK30KKworCisKIC8qIENv bXB1dGUgdGhlIGRlcHRoIGZpcnN0IHNlYXJjaCBvcmRlciBvbiB0aGUgX3Jl dmVyc2VfIGdyYXBoIGFuZAogICAgc3RvcmUgaW4gdGhlIGFycmF5IERGU19P UkRFUiwgbWFya2luZyB0aGUgbm9kZXMgdmlzaXRlZCBpbiBWSVNJVEVELgog ICAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIHZpc2l0ZWQuCkluZGV4 OiBlYXJseS1sdG8tZGVidWcvZ2NjL2NmZ2FuYWwuaAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBlYXJseS1sdG8tZGVidWcub3JpZy9nY2MvY2ZnYW5h bC5oCTIwMTctMTEtMjIgMTA6NTE6MjkuOTAwMTM2NDY1ICswMTAwCisrKyBl YXJseS1sdG8tZGVidWcvZ2NjL2NmZ2FuYWwuaAkyMDE3LTExLTIyIDEwOjUx OjU0LjI5NjUyNjkyMCArMDEwMApAQCAtNjcsNiArNjcsOCBAQCBleHRlcm4g dm9pZCBpbnZlcnRlZF9wb3N0X29yZGVyX2NvbXB1dGUKIGV4dGVybiBpbnQg cHJlX2FuZF9yZXZfcG9zdF9vcmRlcl9jb21wdXRlX2ZuIChzdHJ1Y3QgZnVu Y3Rpb24gKiwKIAkJCQkJICAgICAgaW50ICosIGludCAqLCBib29sKTsKIGV4 dGVybiBpbnQgcHJlX2FuZF9yZXZfcG9zdF9vcmRlcl9jb21wdXRlIChpbnQg KiwgaW50ICosIGJvb2wpOworZXh0ZXJuIGludCByZXZfcG9zdF9vcmRlcl9h bmRfbWFya19kZnNfYmFja19zZW1lIChzdHJ1Y3QgZnVuY3Rpb24gKiwgZWRn ZSwKKwkJCQkJCSAgYml0bWFwLCBpbnQgKik7CiBleHRlcm4gaW50IGRmc19l bnVtZXJhdGVfZnJvbSAoYmFzaWNfYmxvY2ssIGludCwKIAkJCSAgICAgICBi b29sICgqKShjb25zdF9iYXNpY19ibG9jaywgY29uc3Qgdm9pZCAqKSwKIAkJ CSAgICAgICBiYXNpY19ibG9jayAqLCBpbnQsIGNvbnN0IHZvaWQgKik7Cgo= --00000000000016ec3e056beda1d6--