From: Richard Biener <rguenther@suse.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] Fix up go regressions caused by my recent switchconv changes (PR go/91617)
Date: Sun, 01 Sep 2019 16:44:00 -0000 [thread overview]
Message-ID: <D9B22C84-0211-4A83-A518-EF00CF644479@suse.de> (raw)
In-Reply-To: <20190901163425.GK2120@tucnak>
On September 1, 2019 6:34:25 PM GMT+02:00, Jakub Jelinek <jakub@redhat.com> wrote:
>On Sat, Aug 31, 2019 at 08:25:49PM +0200, Richard Biener wrote:
>> So why not always return an unsigned type then by telling
>type_for_size?
>
>So like this (if it passes bootstrap/regtest)?
Yes.
Thanks,
Richard.
>2019-09-01 Jakub Jelinek <jakub@redhat.com>
>
> PR go/91617
> * fold-const.c (range_check_type): For enumeral and boolean
> type, pass 1 to type_for_size langhook instead of
> TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
> etype isn't TYPE_UNSIGNED INTEGER_TYPE.
> (build_range_check): Don't call unsigned_type_for for pointer types.
> * match.pd (X / C1 op C2): Don't call unsigned_type_for on
> range_check_type result.
>
>--- gcc/fold-const.c.jj 2019-08-27 12:26:39.303884758 +0200
>+++ gcc/fold-const.c 2019-09-01 18:22:41.866023675 +0200
>@@ -4938,10 +4938,9 @@ range_check_type (tree etype)
>/* First make sure that arithmetics in this type is valid, then make
>sure
> that it wraps around. */
>if (TREE_CODE (etype) == ENUMERAL_TYPE || TREE_CODE (etype) ==
>BOOLEAN_TYPE)
>- etype = lang_hooks.types.type_for_size (TYPE_PRECISION (etype),
>- TYPE_UNSIGNED (etype));
>+ etype = lang_hooks.types.type_for_size (TYPE_PRECISION (etype),
>1);
>
>- if (TREE_CODE (etype) == INTEGER_TYPE && !TYPE_OVERFLOW_WRAPS
>(etype))
>+ if (TREE_CODE (etype) != INTEGER_TYPE || !TYPE_UNSIGNED (etype))
> {
> tree utype, minv, maxv;
>
>@@ -5049,9 +5048,6 @@ build_range_check (location_t loc, tree
> if (etype == NULL_TREE)
> return NULL_TREE;
>
>- if (POINTER_TYPE_P (etype))
>- etype = unsigned_type_for (etype);
>-
> high = fold_convert_loc (loc, etype, high);
> low = fold_convert_loc (loc, etype, low);
> exp = fold_convert_loc (loc, etype, exp);
>--- gcc/match.pd.jj 2019-08-27 12:26:40.745863588 +0200
>+++ gcc/match.pd 2019-09-01 18:23:02.098729356 +0200
>@@ -1569,8 +1569,6 @@ (define_operator_list COND_TERNARY
> tree etype = range_check_type (TREE_TYPE (@0));
> if (etype)
> {
>- if (! TYPE_UNSIGNED (etype))
>- etype = unsigned_type_for (etype);
> hi = fold_convert (etype, hi);
> lo = fold_convert (etype, lo);
> hi = const_binop (MINUS_EXPR, etype, hi, lo);
>
>
> Jakub
next prev parent reply other threads:[~2019-09-01 16:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-31 15:59 Jakub Jelinek
2019-08-31 17:12 ` Ian Lance Taylor via gcc-patches
2019-08-31 17:41 ` Richard Biener
2019-08-31 19:17 ` Jakub Jelinek
2019-08-31 20:15 ` Richard Biener
2019-09-01 16:34 ` Jakub Jelinek
2019-09-01 16:44 ` Richard Biener [this message]
2019-09-02 8:14 ` Jakub Jelinek
2019-09-02 8:29 ` Andrew Pinski
2019-09-02 13:37 ` Jakub Jelinek
2019-09-02 8:31 ` Richard Biener
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D9B22C84-0211-4A83-A518-EF00CF644479@suse.de \
--to=rguenther@suse.de \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).