public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "zackw at panix dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/48580] missed optimization: integer overflow checks
Date: Tue, 12 Apr 2011 21:03:00 -0000	[thread overview]
Message-ID: <bug-48580-4-3XSBVemvCg@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-48580-4@http.gcc.gnu.org/bugzilla/>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48580

--- Comment #4 from Zack Weinberg <zackw at panix dot com> 2011-04-12 21:03:01 UTC ---
On Tue, Apr 12, 2011 at 1:52 PM, joseph at codesourcery dot com
<gcc-bugzilla@gcc.gnu.org> wrote:
>> In the code that this is cut down from, both arguments are known to be strictly
>> positive, but neither is constant.  (They're only signed for historical
>> reasons, I think, but it would be a huge amount of work to change that.)
>
> My point in noting the need for the integers to be positive was really
> that unless the compiler knows they are positive, the transformation
> you're asking for appears to be incorrect - the semantics of your function
> are that a product with either term 0 counts as overflowing, but using a
> processor overflow flag would report it as not overflowing.

Well, if the compiler didn't know that, it could still use the
overflow flag plus an extra test for either input operand being zero,
couldn't it?  The C idiom has to test for a zero result, because e.g.
0x4000_0000U * 16 wraps to zero.

(The original code does in fact check for x or y  <= 0 in a place
where VRP would notice; I should have said that instead of "known to
be strictly positive", sorry for any confusion.)


  parent reply	other threads:[~2011-04-12 21:03 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-12 18:36 [Bug rtl-optimization/48580] New: " zackw at panix dot com
2011-04-12 20:18 ` [Bug rtl-optimization/48580] " joseph at codesourcery dot com
2011-04-12 20:40 ` zackw at panix dot com
2011-04-12 20:52 ` joseph at codesourcery dot com
2011-04-12 21:03 ` zackw at panix dot com [this message]
2011-04-12 21:04 ` zackw at panix dot com
2011-04-12 21:10 ` joseph at codesourcery dot com
2011-04-12 21:16 ` joseph at codesourcery dot com
2011-04-13 12:11 ` [Bug middle-end/48580] " rguenth at gcc dot gnu.org
2011-04-13 12:46 ` joseph at codesourcery dot com
2011-04-13 17:44 ` svfuerst at gmail dot com
2011-06-20  9:47 ` jsm28 at gcc dot gnu.org
2011-10-05 12:44 ` jules at gcc dot gnu.org
2011-10-05 13:08 ` jules at gcc dot gnu.org
2011-10-05 15:20 ` joseph at codesourcery dot com
2013-02-02 14:03 ` Martin.vGagern at gmx dot net
2013-02-02 17:02 ` noloader at gmail dot com
2013-02-02 18:54 ` Martin.vGagern at gmx dot net
2013-02-02 21:59 ` zackw at panix dot com
2013-02-02 22:08 ` Martin.vGagern at gmx dot net
2013-05-19 13:04 ` glisse at gcc dot gnu.org
2014-08-24  7:06 ` Martin.vGagern at gmx dot net
2021-08-15 11:45 ` pinskia at gcc dot gnu.org
2021-08-15 11:49 ` pinskia at gcc dot gnu.org
2021-10-22 22:18 ` pinskia at gcc dot gnu.org
2023-08-09 22:29 ` pinskia at gcc dot gnu.org

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=bug-48580-4-3XSBVemvCg@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.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).