From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2421 invoked by alias); 26 Jul 2017 07:48:51 -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 1966 invoked by uid 89); 26 Jul 2017 07:48:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=Hx-languages-length:2359 X-HELO: mail-lf0-f45.google.com Received: from mail-lf0-f45.google.com (HELO mail-lf0-f45.google.com) (209.85.215.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 26 Jul 2017 07:48:34 +0000 Received: by mail-lf0-f45.google.com with SMTP id t128so35060233lff.2 for ; Wed, 26 Jul 2017 00:48:34 -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=aXRuwQvFq7ZaLGDVWuNuj5XNj/A4KLhzmYdkXHqtDVY=; b=nPnWcmDcXbIF9c6xDjQYfmeaRJjILHlxLAG7evy3XwzMv9yNFvx7E4wQOx0KGJGSyz QHbnGHfTZJzvEkfjDBCp8jppeNRli+HntatVmz3gSEYyWhVnFucg8+Er6Tpf+juYZEQS lLlxqApGH09uXISYhmK3SxUN6oNEDiKkUEkFVu0uhw0x2B4JNH8oat+bkHsjmNwL3apT AsC/Cp1StxLjVKjofQeTMFIjpZhF/776LJO0R4JLNg079U6lp095is3A1GakKhdorw6u zYyaZL9XbIj0TnmOgYJBTye55Me1E+xiFxjwupMd0jOKj2JiWsn7XCQIvfz3pXPIfUFv Ke1A== X-Gm-Message-State: AIVw111SGs7uzrMcn61TTCp+t9r2sopQQMokxJMkK6guCswDgMJbU/49 eiFdRQ+pjljBK0W8LOfmXBlBwqEwEQ== X-Received: by 10.46.22.13 with SMTP id w13mr54530ljd.76.1501055312231; Wed, 26 Jul 2017 00:48:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.31.134 with HTTP; Wed, 26 Jul 2017 00:48:31 -0700 (PDT) In-Reply-To: References: From: Richard Biener Date: Wed, 26 Jul 2017 07:48:00 -0000 Message-ID: Subject: Re: [PATCH GCC][1/2]Feed bound computation to folder in loop split To: Marc Glisse Cc: "Bin.Cheng" , gcc-patches List Content-Type: multipart/mixed; boundary="f403045fc07eac9871055533ac5a" X-IsSubscribed: yes X-SW-Source: 2017-07/txt/msg01629.txt.bz2 --f403045fc07eac9871055533ac5a Content-Type: text/plain; charset="UTF-8" Content-length: 2550 On Tue, Jul 25, 2017 at 7:45 PM, Marc Glisse wrote: > On Tue, 25 Jul 2017, Richard Biener wrote: > >>> I think we need Richard to say what the intent is for the valueization >>> function. It is used both to stop looking at defining stmt if the return >>> is >>> NULL, and to replace/optimize one SSA_NAME with another, but currently it >>> seems hard to prevent looking at the defining statement without >>> preventing >>> from looking at the SSA_NAME at all. >> >> >> Yeah, this semantic overloading is an issue. For gimple_build we have >> nothing >> to "valueize" but we only use it to tell genmatch that it may not look at >> the >> SSA_NAME_DEF_STMT. >> >>> I guess we'll need a fix in genmatch... >> >> >> I'll have a look tomorrow. > > > My impression yesterday was that we could replace the current do_valueize > wrapper by 2 wrappers (without touching the valueize callbacks): > - may_check_def_stmt, which returns a bool corresponding to the current > do_valueize != NULL_TREE > - maybe_valueize, which tries to valueize, but if it gets a NULL_TREE, it > returns its argument unchanged. > > Not very confident about it though. Note I've been there in the past (twice I think) but always ran into existing latent issues. So hopefully we've resolved those, I'm testing the following simplified variant of what I had back in time. It'll produce switch (TREE_CODE (op0)) { case SSA_NAME: if (gimple *def_stmt = get_def (valueize, op0)) { if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); o20 = do_valueize (valueize, o20); tree o21 = gimple_assign_rhs2 (def); o21 = do_valueize (valueize, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { which also indents less which is nice. Bootstrap/regtest running on x86_64-unknown-linux-gnu. Richard. 2017-07-26 Richard Biener * gimple-match-head.c (do_valueize): Return OP if valueize returns NULL_TREE. (get_def): New helper to get at the def stmt of a SSA name if valueize allows. * genmatch.c (dt_node::gen_kids_1): Use get_def instead of do_valueize to get at the def stmt. (dt_operand::gen_gimple_expr): Simplify do_valueize calls. > -- > Marc Glisse --f403045fc07eac9871055533ac5a Content-Type: application/octet-stream; name=p3 Content-Disposition: attachment; filename=p3 Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5kpklr90 Content-length: 4824 MjAxNy0wNy0yNiAgUmljaGFyZCBCaWVuZXIgIDxyZ3VlbnRoZXJAc3VzZS5k ZT4KCgkqIGdpbXBsZS1tYXRjaC1oZWFkLmMgKGRvX3ZhbHVlaXplKTogUmV0 dXJuIE9QIGlmIHZhbHVlaXplCglyZXR1cm5zIE5VTExfVFJFRS4KCShnZXRf ZGVmKTogTmV3IGhlbHBlciB0byBnZXQgYXQgdGhlIGRlZiBzdG10IG9mIGEg U1NBIG5hbWUKCWlmIHZhbHVlaXplIGFsbG93cy4KCSogZ2VubWF0Y2guYyAo ZHRfbm9kZTo6Z2VuX2tpZHNfMSk6IFVzZSBnZXRfZGVmIGluc3RlYWQgb2YK CWRvX3ZhbHVlaXplIHRvIGdldCBhdCB0aGUgZGVmIHN0bXQuCgkoZHRfb3Bl cmFuZDo6Z2VuX2dpbXBsZV9leHByKTogU2ltcGxpZnkgZG9fdmFsdWVpemUg Y2FsbHMuCgpJbmRleDogZ2NjL2dpbXBsZS1tYXRjaC1oZWFkLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ2NjL2dpbXBsZS1tYXRjaC1oZWFkLmMJ KHJldmlzaW9uIDI1MDUxOCkKKysrIGdjYy9naW1wbGUtbWF0Y2gtaGVhZC5j CSh3b3JraW5nIGNvcHkpCkBAIC03NzksMTAgKzc3OSwyNSBAQCBpbmxpbmUg dHJlZQogZG9fdmFsdWVpemUgKHRyZWUgKCp2YWx1ZWl6ZSkodHJlZSksIHRy ZWUgb3ApCiB7CiAgIGlmICh2YWx1ZWl6ZSAmJiBUUkVFX0NPREUgKG9wKSA9 PSBTU0FfTkFNRSkKLSAgICByZXR1cm4gdmFsdWVpemUgKG9wKTsKKyAgICB7 CisgICAgICB0cmVlIHRlbSA9IHZhbHVlaXplIChvcCk7CisgICAgICBpZiAo dGVtKQorCXJldHVybiB0ZW07CisgICAgfQogICByZXR1cm4gb3A7CiB9CiAK Ky8qIEhlbHBlciBmb3IgdGhlIGF1dG9nZW5lcmF0ZWQgY29kZSwgZ2V0IGF0 IHRoZSBkZWZpbml0aW9uIG9mIE5BTUUgd2hlbgorICAgVkFMVUVJWkUgYWxs b3dzIHRoYXQuICAqLworCitpbmxpbmUgZ2ltcGxlICoKK2dldF9kZWYgKHRy ZWUgKCp2YWx1ZWl6ZSkodHJlZSksIHRyZWUgbmFtZSkKK3sKKyAgaWYgKHZh bHVlaXplICYmICEgdmFsdWVpemUgKG5hbWUpKQorICAgIHJldHVybiBOVUxM OworICByZXR1cm4gU1NBX05BTUVfREVGX1NUTVQgKG5hbWUpOworfQorCiAv KiBSb3V0aW5lIHRvIGRldGVybWluZSBpZiB0aGUgdHlwZXMgVDEgYW5kIFQy IGFyZSBlZmZlY3RpdmVseQogICAgdGhlIHNhbWUgZm9yIEdJTVBMRS4gIElm IFQxIG9yIFQyIGlzIG5vdCBhIHR5cGUsIHRoZSB0ZXN0CiAgICBhcHBsaWVz IHRvIHRoZWlyIFRSRUVfVFlQRS4gICovCkluZGV4OiBnY2MvZ2VubWF0Y2gu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvZ2VubWF0Y2guYwko cmV2aXNpb24gMjUwNTE4KQorKysgZ2NjL2dlbm1hdGNoLmMJKHdvcmtpbmcg Y29weSkKQEAgLTI2NDYsNiArMjY1NCw3IEBAIGR0X29wZXJhbmQ6Omdlbl9n aW1wbGVfZXhwciAoRklMRSAqZiwgaW4KICAgZXhwciAqZSA9IHN0YXRpY19j YXN0PGV4cHIgKj4gKG9wKTsKICAgaWRfYmFzZSAqaWQgPSBlLT5vcGVyYXRp b247CiAgIHVuc2lnbmVkIG5fb3BzID0gZS0+b3BzLmxlbmd0aCAoKTsKKyAg dW5zaWduZWQgbl9icmFjZXMgPSAwOwogCiAgIGZvciAodW5zaWduZWQgaSA9 IDA7IGkgPCBuX29wczsgKytpKQogICAgIHsKQEAgLTI2NzgsMTQgKzI2ODcs MTUgQEAgZHRfb3BlcmFuZDo6Z2VuX2dpbXBsZV9leHByIChGSUxFICpmLCBp bgogCQkJICAgICAgImlmICgoVFJFRV9DT0RFICglcykgPT0gU1NBX05BTUVc biIsCiAJCQkgICAgICBjaGlsZF9vcG5hbWUpOwogCSAgICAgIGZwcmludGZf aW5kZW50IChmLCBpbmRlbnQsCi0JCQkgICAgICAiICAgICB8fCBpc19naW1w bGVfbWluX2ludmFyaWFudCAoJXMpKVxuIiwKKwkJCSAgICAgICIgICAgIHx8 IGlzX2dpbXBsZV9taW5faW52YXJpYW50ICglcykpKVxuIiwKIAkJCSAgICAg IGNoaWxkX29wbmFtZSk7CiAJICAgICAgZnByaW50Zl9pbmRlbnQgKGYsIGlu ZGVudCwKLQkJCSAgICAgICIgICAgJiYgKCVzID0gZG9fdmFsdWVpemUgKHZh bHVlaXplLCAlcykpKVxuIiwKLQkJCSAgICAgIGNoaWxkX29wbmFtZSwgY2hp bGRfb3BuYW1lKTsKLQkgICAgICBmcHJpbnRmX2luZGVudCAoZiwgaW5kZW50 LAogCQkJICAgICAgIiAge1xuIik7CiAJICAgICAgaW5kZW50ICs9IDQ7CisJ ICAgICAgbl9icmFjZXMrKzsKKwkgICAgICBmcHJpbnRmX2luZGVudCAoZiwg aW5kZW50LAorCQkJICAgICAgIiVzID0gZG9fdmFsdWVpemUgKHZhbHVlaXpl LCAlcyk7XG4iLAorCQkJICAgICAgY2hpbGRfb3BuYW1lLCBjaGlsZF9vcG5h bWUpOwogCSAgICAgIGNvbnRpbnVlOwogCSAgICB9CiAJICBlbHNlCkBAIC0y Njk4LDEwICsyNzA4LDggQEAgZHRfb3BlcmFuZDo6Z2VuX2dpbXBsZV9leHBy IChGSUxFICpmLCBpbgogCQkJInRyZWUgJXMgPSBnaW1wbGVfY2FsbF9hcmcg KGRlZiwgJXUpO1xuIiwKIAkJCWNoaWxkX29wbmFtZSwgaSk7CiAgICAgICBm cHJpbnRmX2luZGVudCAoZiwgaW5kZW50LAotCQkgICAgICAiaWYgKCglcyA9 IGRvX3ZhbHVlaXplICh2YWx1ZWl6ZSwgJXMpKSlcbiIsCisJCSAgICAgICIl cyA9IGRvX3ZhbHVlaXplICh2YWx1ZWl6ZSwgJXMpO1xuIiwKIAkJICAgICAg Y2hpbGRfb3BuYW1lLCBjaGlsZF9vcG5hbWUpOwotICAgICAgZnByaW50Zl9p bmRlbnQgKGYsIGluZGVudCwgIiAge1xuIik7Ci0gICAgICBpbmRlbnQgKz0g NDsKICAgICB9CiAgIC8qIFdoaWxlIHRoZSB0b3BsZXZlbCBvcGVyYW5kcyBh cmUgY2Fub25pY2FsaXplZCBieSB0aGUgY2FsbGVyCiAgICAgIGFmdGVyIHZh bHVlaXppbmcgb3BlcmFuZHMgb2Ygc3ViLWV4cHJlc3Npb25zIHdlIGhhdmUg dG8KQEAgLTI3MjYsNyArMjczNCw3IEBAIGR0X29wZXJhbmQ6Omdlbl9naW1w bGVfZXhwciAoRklMRSAqZiwgaW4KIAl9CiAgICAgfQogCi0gIHJldHVybiBu X29wczsKKyAgcmV0dXJuIG5fYnJhY2VzOwogfQogCiAvKiBHZW5lcmF0ZSBH RU5FUklDIG1hdGNoaW5nIGNvZGUgZm9yIHRoZSBkZWNpc2lvbiB0cmVlIG9w ZXJhbmQuICAqLwpAQCAtMjg2NywxNCArMjg3NSwxMCBAQCBkdF9ub2RlOjpn ZW5fa2lkc18xIChGSUxFICpmLCBpbnQgaW5kZW50CiAgICAgICBmcHJpbnRm X2luZGVudCAoZiwgaW5kZW50LAogCQkgICAgICAiY2FzZSBTU0FfTkFNRTpc biIpOwogICAgICAgZnByaW50Zl9pbmRlbnQgKGYsIGluZGVudCwKLQkJICAg ICAgIiAgaWYgKGRvX3ZhbHVlaXplICh2YWx1ZWl6ZSwgJXMpICE9IE5VTExf VFJFRSlcbiIsCisJCSAgICAgICIgIGlmIChnaW1wbGUgKmRlZl9zdG10ID0g Z2V0X2RlZiAodmFsdWVpemUsICVzKSlcbiIsCiAJCSAgICAgIGtpZF9vcG5h bWUpOwogICAgICAgZnByaW50Zl9pbmRlbnQgKGYsIGluZGVudCwKIAkJICAg ICAgIiAgICB7XG4iKTsKLSAgICAgIGZwcmludGZfaW5kZW50IChmLCBpbmRl bnQsCi0JCSAgICAgICIgICAgICBnaW1wbGUgKmRlZl9zdG10ID0gU1NBX05B TUVfREVGX1NUTVQgKCVzKTtcbiIsCi0JCSAgICAgIGtpZF9vcG5hbWUpOwot CiAgICAgICBpbmRlbnQgKz0gNjsKICAgICAgIGlmIChleHByc19sZW4pCiAJ ewoK --f403045fc07eac9871055533ac5a--