From: Andrew MacLeod <amacleod@redhat.com>
To: Richard Biener <rguenther@suse.de>, Aldy Hernandez <aldyh@redhat.com>
Cc: Jiufu Guo <guojiufu@linux.ibm.com>,
gcc-patches@gcc.gnu.org, jeffreyalaw@gmail.com,
richard.sandiford@arm.com, segher@kernel.crashing.org,
dje.gcc@gmail.com, linkw@gcc.gnu.org, bergner@linux.ibm.com
Subject: Re: [PATCH V4] Optimize '(X - N * M) / N' to 'X / N - M' if valid
Date: Fri, 14 Jul 2023 17:00:29 -0400 [thread overview]
Message-ID: <a5709138-726b-b685-8c2f-e861b6464200@redhat.com> (raw)
In-Reply-To: <qo28o862-813o-35rp-53n-4op05r1p8o49@fhfr.qr>
On 7/14/23 09:37, Richard Biener wrote:
> On Fri, 14 Jul 2023, Aldy Hernandez wrote:
>
>> I don't know what you're trying to accomplish here, as I haven't been
>> following the PR, but adding all these helper functions to the ranger header
>> file seems wrong, especially since there's only one use of them. I see you're
>> tweaking the irange API, adding helper functions to range-op (which is only
>> for code dealing with implementing range operators for tree codes), etc etc.
>>
>> If you need these helper functions, I suggest you put them closer to their
>> uses (i.e. wherever the match.pd support machinery goes).
> Note I suggested the opposite beacuse I thought these kind of helpers
> are closer to value-range support than to match.pd.
probably vr-values.{cc.h} and the simply_using_ranges paradigm would be
the most sensible place to put these kinds of auxiliary routines?
>
> But I take away from your answer that there's nothing close in the
> value-range machinery that answers the question whether A op B may
> overflow?
we dont track it in ranges themselves. During calculation of a range
we obviously know, but propagating that generally when we rarely care
doesn't seem worthwhile. The very first generation of irange 6 years
ago had an overflow_p() flag, but it was removed as not being worth
keeping. easier to simply ask the question when it matters
As the routines show, it pretty easy to figure out when the need arises
so I think that should suffice. At least for now,
Should we decide we would like it in general, it wouldnt be hard to add
to irange. wi_fold() cuurently returns null, it could easily return a
bool indicating if an overflow happened, and wi_fold_in_parts and
fold_range would simply OR the results all together of the compoent
wi_fold() calls. It would require updating/audfiting a number of
range-op entries and adding an overflowed_p() query to irange.
Andrew
next prev parent reply other threads:[~2023-07-14 21:00 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-11 9:04 Jiufu Guo
2023-07-14 11:27 ` Aldy Hernandez
2023-07-14 13:37 ` Richard Biener
2023-07-14 14:12 ` Aldy Hernandez
2023-07-14 21:00 ` Andrew MacLeod [this message]
2023-07-17 6:27 ` Jiufu Guo
2023-07-17 9:24 ` Richard Biener
2023-07-17 13:45 ` Jiufu Guo
2023-07-17 17:24 ` Andrew MacLeod
2023-07-18 9:44 ` Jiufu Guo
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=a5709138-726b-b685-8c2f-e861b6464200@redhat.com \
--to=amacleod@redhat.com \
--cc=aldyh@redhat.com \
--cc=bergner@linux.ibm.com \
--cc=dje.gcc@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=guojiufu@linux.ibm.com \
--cc=jeffreyalaw@gmail.com \
--cc=linkw@gcc.gnu.org \
--cc=rguenther@suse.de \
--cc=richard.sandiford@arm.com \
--cc=segher@kernel.crashing.org \
/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).