From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29974 invoked by alias); 27 Jun 2017 10:26: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 29950 invoked by uid 89); 27 Jun 2017 10:26:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=no version=3.3.2 spammy= X-HELO: mail-ot0-f181.google.com Received: from mail-ot0-f181.google.com (HELO mail-ot0-f181.google.com) (74.125.82.181) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Jun 2017 10:26:48 +0000 Received: by mail-ot0-f181.google.com with SMTP id y47so18866474oty.0 for ; Tue, 27 Jun 2017 03:26:48 -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=7Cq9xMcSbYsAq1kIx0itKfQeea9vS1qX1TWaWc+xI2g=; b=uk7dVwEukhahR+wkFYI78p37dN7imdDyEHj1oaj4Dn/Y55P4ouwRPwYiNlxm2Js/VM yzSn3YCABdhmzjeCD5LbwNHZD0KOfGq97LXFVtJ7mqkCQMVnbfcP4yBUmOkGVwRTrGbR u7mFnTcof5yEfxuTOJO+COHAde9yIFV0+HUOmnJZ6GOJs/FIDAZNt+K2pCOawq3NCULt b1qNcDAxVEr2zJxqVb8wIcIxXXXxALRD6M9h/lMJfhikeGpDEs0ZdRy2/O/F5SXJ28vb HUNXYBMw0AVI4IZaDtnfXoYLGVqz9D9x9x1qsqU2KlYOzuXfb96Ojh/bQLSWtQEyQeVq 6oNA== X-Gm-Message-State: AKS2vOw4hEHE+5szBUmDOuHyRcHZYkFsbfv3619H/iZHrK4lGfsTB+Ia t5FJLDLtumCnphpeTW3h4F0/2GsjFV1n X-Received: by 10.157.27.237 with SMTP id v42mr2717455otv.172.1498559207172; Tue, 27 Jun 2017 03:26:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.12.156 with HTTP; Tue, 27 Jun 2017 03:26:46 -0700 (PDT) In-Reply-To: References: <85de74ae-9680-1461-a289-42c915b5285a@redhat.com> From: Aldy Hernandez Date: Tue, 27 Jun 2017 10:26:00 -0000 Message-ID: Subject: Re: Avoid generating useless range info To: Richard Biener Cc: Andrew MacLeod , gcc-patches Content-Type: multipart/mixed; boundary="001a1140ff6e3828170552ee81ec" X-SW-Source: 2017-06/txt/msg01997.txt.bz2 --001a1140ff6e3828170552ee81ec Content-Type: text/plain; charset="UTF-8" Content-length: 1832 On Fri, Jun 23, 2017 at 6:24 AM, Richard Biener wrote: > On Fri, Jun 23, 2017 at 10:59 AM, Aldy Hernandez wrote: >> >> >> On Fri, Jun 16, 2017 at 4:00 AM, Richard Biener >> wrote: >>> >>> On Wed, Jun 14, 2017 at 6:41 PM, Aldy Hernandez wrote: >>> > Hi! >>> > >>> > As discovered in my range class work, we seem to generate a significant >>> > amount of useless range info out of VRP. >>> > >>> > Is there any reason why we can't avoid generating any range info that >>> > spans >>> > the entire domain, and yet contains nothing in the non-zero bitmask? >>> > >>> > The attached patch passes bootstrap, and the one regression it causes is >>> > because now the -Walloca-larger-than= pass is better able to determine >>> > that >>> > there is no range information at all, and the testcase is unbounded. >>> > So...win, win. >>> > >>> > OK for trunk? >>> >>> Can you please do this in set_range_info itself? Thus, if min == >>> wi::min_value && max == wi::max_value >>> simply return? (do not use TYPE_MIN?MAX_VALUE please) >> >> >> The reason I did it in vrp_finalize is because if you do it in >> set_range_info, you break set_nonzero_bits when setting bits on an SSA that >> currently has no range info: >> >> void >> set_nonzero_bits (tree name, const wide_int_ref &mask) >> { >> gcc_assert (!POINTER_TYPE_P (TREE_TYPE (name))); >> if (SSA_NAME_RANGE_INFO (name) == NULL) >> set_range_info (name, VR_RANGE, >> TYPE_MIN_VALUE (TREE_TYPE (name)), >> TYPE_MAX_VALUE (TREE_TYPE (name))); >> range_info_def *ri = SSA_NAME_RANGE_INFO (name); >> ri->set_nonzero_bits (mask); >> } >> >> Let me know how you'd like me to proceed. > > Just factor out a set_range_info_raw and call that then from here. How about this? Aldy --001a1140ff6e3828170552ee81ec Content-Type: application/octet-stream; name=curr Content-Disposition: attachment; filename=curr Content-Transfer-Encoding: base64 X-Attachment-Id: f_j4ffeizq0 Content-length: 4811 Z2NjLwoKCSogdHJlZS1zc2FuYW1lcy5jIChzZXRfcmFuZ2VfaW5mb19yYXcp OiBBYnN0cmFjdCBmcm9tIC4uLgoJKHNldF9yYW5nZV9pbmZvKTogLi4uaGVy ZS4gIE9ubHkgY2FsbCBzZXRfcmFuZ2VfaW5mb19yYXcgaWYgZG9tYWluCglp cyB1c2VmdWwuCgkoc2V0X25vbnplcm9fYml0cyk6IENhbGwgc2V0X3Jhbmdl X2luZm9fcmF3LgoJKiB0cmVlLXNzYW5hbWVzLmggKHNldF9yYW5nZV9pbmZv X3Jhdyk6IE5ldy4KCmdjYy90ZXN0c3VpdGUvCgoJKiBnY2MuZGcvV2FsbG9j YS0xNC5jOiBBZGFwdCB0ZXN0IHRvIHJlY29nbml6ZSBuZXcgY29tcGxhaW50 IG9mCgl1bmJvdW5kZWQgdXNlLgoKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL1dhbGxvY2EtMTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L1dhbGxvY2EtMTQuYwppbmRleCA3MjNkYmU1Li5mM2UzZjU3IDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYWxsb2NhLTE0LmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FsbG9jYS0xNC5jCkBAIC05LDUgKzks NiBAQCBnIChpbnQgKnApCiAgIGV4dGVybiB2b2lkIGYgKHZvaWQgKik7CiAK ICAgdm9pZCAqcSA9IF9fYnVpbHRpbl9hbGxvY2EgKHApOyAvKiB7IGRnLXdh cm5pbmcgInBhc3NpbmcgYXJndW1lbnQgMSIgfSAqLworICAvKiB7IGRnLXdh cm5pbmcgInVuYm91bmRlZCB1c2Ugb2YgJ2FsbG9jYSciICJ1bmJvdW5kZWQi IHsgdGFyZ2V0ICotKi0qIH0gMTEgfSAqLwogICBmIChxKTsKIH0KZGlmZiAt LWdpdCBhL2djYy90cmVlLXNzYW5hbWVzLmMgYi9nY2MvdHJlZS1zc2FuYW1l cy5jCmluZGV4IDM1M2M3YjEuLjk4ODZhOWQgMTAwNjQ0Ci0tLSBhL2djYy90 cmVlLXNzYW5hbWVzLmMKKysrIGIvZ2NjL3RyZWUtc3NhbmFtZXMuYwpAQCAt MzIwLDExICszMjAsMTQgQEAgbWFrZV9zc2FfbmFtZV9mbiAoc3RydWN0IGZ1 bmN0aW9uICpmbiwgdHJlZSB2YXIsIGdpbXBsZSAqc3RtdCwKICAgcmV0dXJu IHQ7CiB9CiAKLS8qIFN0b3JlIHJhbmdlIGluZm9ybWF0aW9uIFJBTkdFX1RZ UEUsIE1JTiwgYW5kIE1BWCB0byB0cmVlIHNzYV9uYW1lIE5BTUUuICAqLwor LyogSGVscGVyIGZ1bmN0aW9uIGZvciBzZXRfcmFuZ2VfaW5mby4KKworICAg U3RvcmUgcmFuZ2UgaW5mb3JtYXRpb24gUkFOR0VfVFlQRSwgTUlOLCBhbmQg TUFYIHRvIHRyZWUgc3NhX25hbWUKKyAgIE5BTUUuICAqLwogCiB2b2lkCi1z ZXRfcmFuZ2VfaW5mbyAodHJlZSBuYW1lLCBlbnVtIHZhbHVlX3JhbmdlX3R5 cGUgcmFuZ2VfdHlwZSwKLQkJY29uc3Qgd2lkZV9pbnRfcmVmICZtaW4sIGNv bnN0IHdpZGVfaW50X3JlZiAmbWF4KQorc2V0X3JhbmdlX2luZm9fcmF3ICh0 cmVlIG5hbWUsIGVudW0gdmFsdWVfcmFuZ2VfdHlwZSByYW5nZV90eXBlLAor CQkgICAgY29uc3Qgd2lkZV9pbnRfcmVmICZtaW4sIGNvbnN0IHdpZGVfaW50 X3JlZiAmbWF4KQogewogICBnY2NfYXNzZXJ0ICghUE9JTlRFUl9UWVBFX1Ag KFRSRUVfVFlQRSAobmFtZSkpKTsKICAgZ2NjX2Fzc2VydCAocmFuZ2VfdHlw ZSA9PSBWUl9SQU5HRSB8fCByYW5nZV90eXBlID09IFZSX0FOVElfUkFOR0Up OwpAQCAtMzYwLDYgKzM2MywyMiBAQCBzZXRfcmFuZ2VfaW5mbyAodHJlZSBu YW1lLCBlbnVtIHZhbHVlX3JhbmdlX3R5cGUgcmFuZ2VfdHlwZSwKICAgICB9 CiB9CiAKKy8qIFN0b3JlIHJhbmdlIGluZm9ybWF0aW9uIFJBTkdFX1RZUEUs IE1JTiwgYW5kIE1BWCB0byB0cmVlIHNzYV9uYW1lCisgICBOQU1FIHdoaWxl IG1ha2luZyBzdXJlIHdlIGRvbid0IHN0b3JlIHVzZWxlc3MgcmFuZ2UgaW5m by4gICovCisKK3ZvaWQKK3NldF9yYW5nZV9pbmZvICh0cmVlIG5hbWUsIGVu dW0gdmFsdWVfcmFuZ2VfdHlwZSByYW5nZV90eXBlLAorCQljb25zdCB3aWRl X2ludF9yZWYgJm1pbiwgY29uc3Qgd2lkZV9pbnRfcmVmICZtYXgpCit7Cisg IC8qIEEgcmFuZ2Ugb2YgdGhlIGVudGlyZSBkb21haW4gaXMgcmVhbGx5IG5v IHJhbmdlIGF0IGFsbC4gICovCisgIHRyZWUgdHlwZSA9IFRSRUVfVFlQRSAo bmFtZSk7CisgIGlmIChtaW4gPT0gd2k6Om1pbl92YWx1ZSAoVFlQRV9QUkVD SVNJT04gKHR5cGUpLCBUWVBFX1NJR04gKHR5cGUpKQorICAgICAgJiYgbWF4 ID09IHdpOjptYXhfdmFsdWUgKFRZUEVfUFJFQ0lTSU9OICh0eXBlKSwgVFlQ RV9TSUdOICh0eXBlKSkpCisgICAgcmV0dXJuOworCisgIHNldF9yYW5nZV9p bmZvX3JhdyAobmFtZSwgcmFuZ2VfdHlwZSwgbWluLCBtYXgpOworfQorCiAK IC8qIEdldHMgcmFuZ2UgaW5mb3JtYXRpb24gTUlOLCBNQVggYW5kIHJldHVy bnMgZW51bSB2YWx1ZV9yYW5nZV90eXBlCiAgICBjb3JyZXNwb25kaW5nIHRv IHRyZWUgc3NhX25hbWUgTkFNRS4gIGVudW0gdmFsdWVfcmFuZ2VfdHlwZSBy ZXR1cm5lZApAQCAtNDE5LDkgKzQzOCwxMyBAQCBzZXRfbm9uemVyb19iaXRz ICh0cmVlIG5hbWUsIGNvbnN0IHdpZGVfaW50X3JlZiAmbWFzaykKIHsKICAg Z2NjX2Fzc2VydCAoIVBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKG5hbWUp KSk7CiAgIGlmIChTU0FfTkFNRV9SQU5HRV9JTkZPIChuYW1lKSA9PSBOVUxM KQotICAgIHNldF9yYW5nZV9pbmZvIChuYW1lLCBWUl9SQU5HRSwKLQkJICAg IFRZUEVfTUlOX1ZBTFVFIChUUkVFX1RZUEUgKG5hbWUpKSwKLQkJICAgIFRZ UEVfTUFYX1ZBTFVFIChUUkVFX1RZUEUgKG5hbWUpKSk7CisgICAgeworICAg ICAgaWYgKG1hc2sgPT0gLTEpCisJcmV0dXJuOworICAgICAgc2V0X3Jhbmdl X2luZm9fcmF3IChuYW1lLCBWUl9SQU5HRSwKKwkJCSAgVFlQRV9NSU5fVkFM VUUgKFRSRUVfVFlQRSAobmFtZSkpLAorCQkJICBUWVBFX01BWF9WQUxVRSAo VFJFRV9UWVBFIChuYW1lKSkpOworICAgIH0KICAgcmFuZ2VfaW5mb19kZWYg KnJpID0gU1NBX05BTUVfUkFOR0VfSU5GTyAobmFtZSk7CiAgIHJpLT5zZXRf bm9uemVyb19iaXRzIChtYXNrKTsKIH0KZGlmZiAtLWdpdCBhL2djYy90cmVl LXNzYW5hbWVzLmggYi9nY2MvdHJlZS1zc2FuYW1lcy5oCmluZGV4IDlhMTgz OTQuLmY3ZTAzMmYgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXNzYW5hbWVzLmgK KysrIGIvZ2NjL3RyZWUtc3NhbmFtZXMuaApAQCAtNjksNiArNjksOSBAQCBz dHJ1Y3QgR1RZICgodmFyaWFibGVfc2l6ZSkpIHJhbmdlX2luZm9fZGVmIHsK IC8qIFNldHMgdGhlIHZhbHVlIHJhbmdlIHRvIFNTQS4gICovCiBleHRlcm4g dm9pZCBzZXRfcmFuZ2VfaW5mbyAodHJlZSwgZW51bSB2YWx1ZV9yYW5nZV90 eXBlLCBjb25zdCB3aWRlX2ludF9yZWYgJiwKIAkJCSAgICBjb25zdCB3aWRl X2ludF9yZWYgJik7CitleHRlcm4gdm9pZCBzZXRfcmFuZ2VfaW5mb19yYXcg KHRyZWUsIGVudW0gdmFsdWVfcmFuZ2VfdHlwZSwKKwkJCQljb25zdCB3aWRl X2ludF9yZWYgJiwKKwkJCQljb25zdCB3aWRlX2ludF9yZWYgJik7CiAvKiBH ZXRzIHRoZSB2YWx1ZSByYW5nZSBmcm9tIFNTQS4gICovCiBleHRlcm4gZW51 bSB2YWx1ZV9yYW5nZV90eXBlIGdldF9yYW5nZV9pbmZvIChjb25zdF90cmVl LCB3aWRlX2ludCAqLAogCQkJCQkgICAgIHdpZGVfaW50ICopOwo= --001a1140ff6e3828170552ee81ec--