public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "amacleod at redhat dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/109154] [13 regression] jump threading de-optimizes nested floating point comparisons
Date: Wed, 29 Mar 2023 22:41:52 +0000	[thread overview]
Message-ID: <bug-109154-4-RLw6s8FFuY@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-109154-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109154

--- Comment #40 from Andrew Macleod <amacleod at redhat dot com> ---

> There is no problem with adding --params, and those are always better than
> magic numbers.
> 
> Btw, I originally wondered why we don't re-compute zone1_12 because it's
> in the imports of the successor (OK, the empty successors single successor
> block) and expected those to trigger re-computes.

Yeah, I don't like magic number either.  I vaguely recall that it changed the
footprint of something and caused linking issues with something else requiring
complete rebuilds which annoyed some people.. but I  have lost the context.


Recomputes have nothing to do with imports, its all about exports.  Exports
drive the range engine... they are the things that change on exit to block
based on the edge taken.  Imports are things which can affect an export. So in
some iterative/analytical world, if the imports to a block do not change, the
exports will not change either.

Recomputes are about having an export from a block in your definition chain.
This means you are only indirectly related to the export.   If the export
changes, then your value may also change if you can be recalculated using the
export.

This issue is fundamentally about how much effort we make into looking if you
can be recomputed.  Its turns out the underlying engine is more efficient than
I realized, and once we indicate it can be calculated, the calculation itself
is actually linear. 

If we stick to single ssa-names dependencies, then even though the lookup is
currently quadratic, for smallish numbers, its pretty minimal impact.

Most cases I've seen that are of impact seem to be a sequence involving a few
casts.  The current patchset with a depth of 5 catches the vast majority of
things, and is not that expensive.

  parent reply	other threads:[~2023-03-29 22:41 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-16 11:57 [Bug tree-optimization/109154] New: [13 regression] aarch64 -mcpu=neoverse-v1 microbude performance regression pgodbole at nvidia dot com
2023-03-16 13:11 ` [Bug tree-optimization/109154] " tnfchris at gcc dot gnu.org
2023-03-16 14:58 ` [Bug target/109154] " rguenth at gcc dot gnu.org
2023-03-16 17:03 ` tnfchris at gcc dot gnu.org
2023-03-16 17:03 ` [Bug target/109154] [13 regression] jump threading with de-optimizes nested floating point comparisons tnfchris at gcc dot gnu.org
2023-03-22 10:20 ` [Bug tree-optimization/109154] [13 regression] jump threading " aldyh at gcc dot gnu.org
2023-03-22 10:29 ` avieira at gcc dot gnu.org
2023-03-22 12:22 ` rguenth at gcc dot gnu.org
2023-03-22 12:42 ` rguenth at gcc dot gnu.org
2023-03-22 13:11 ` aldyh at gcc dot gnu.org
2023-03-22 14:00 ` amacleod at redhat dot com
2023-03-22 14:39 ` aldyh at gcc dot gnu.org
2023-03-27  8:09 ` rguenth at gcc dot gnu.org
2023-03-27  9:30 ` jakub at gcc dot gnu.org
2023-03-27  9:42 ` aldyh at gcc dot gnu.org
2023-03-27  9:44 ` jakub at gcc dot gnu.org
2023-03-27 10:18 ` rguenther at suse dot de
2023-03-27 10:40 ` jakub at gcc dot gnu.org
2023-03-27 10:44 ` jakub at gcc dot gnu.org
2023-03-27 10:54 ` rguenth at gcc dot gnu.org
2023-03-27 10:56 ` jakub at gcc dot gnu.org
2023-03-27 10:59 ` jakub at gcc dot gnu.org
2023-03-27 17:07 ` jakub at gcc dot gnu.org
2023-03-28  8:33 ` rguenth at gcc dot gnu.org
2023-03-28  9:01 ` cvs-commit at gcc dot gnu.org
2023-03-28 10:07 ` tnfchris at gcc dot gnu.org
2023-03-28 10:08 ` tnfchris at gcc dot gnu.org
2023-03-28 12:18 ` jakub at gcc dot gnu.org
2023-03-28 12:25 ` rguenth at gcc dot gnu.org
2023-03-28 12:42 ` rguenth at gcc dot gnu.org
2023-03-28 13:19 ` rguenth at gcc dot gnu.org
2023-03-28 13:44 ` jakub at gcc dot gnu.org
2023-03-28 13:52 ` jakub at gcc dot gnu.org
2023-03-28 15:31 ` amacleod at redhat dot com
2023-03-28 15:40 ` jakub at gcc dot gnu.org
2023-03-28 15:53 ` amacleod at redhat dot com
2023-03-28 15:58 ` jakub at gcc dot gnu.org
2023-03-28 16:42 ` amacleod at redhat dot com
2023-03-28 21:12 ` amacleod at redhat dot com
2023-03-29  6:33 ` cvs-commit at gcc dot gnu.org
2023-03-29  6:38 ` rguenth at gcc dot gnu.org
2023-03-29 22:41 ` amacleod at redhat dot com [this message]
2023-03-30 18:17 ` cvs-commit at gcc dot gnu.org
2023-04-05  9:28 ` tnfchris at gcc dot gnu.org
2023-04-05  9:34 ` ktkachov at gcc dot gnu.org
2023-04-11  9:36 ` rguenth at gcc dot gnu.org
2023-04-13 16:54 ` jakub at gcc dot gnu.org
2023-04-13 17:25 ` rguenther at suse dot de
2023-04-13 17:29 ` jakub at gcc dot gnu.org
2023-04-14 18:10 ` jakub at gcc dot gnu.org
2023-04-14 18:14 ` jakub at gcc dot gnu.org
2023-04-14 18:22 ` jakub at gcc dot gnu.org
2023-04-14 19:09 ` jakub at gcc dot gnu.org
2023-04-15 10:10 ` cvs-commit at gcc dot gnu.org
2023-04-17 11:07 ` jakub at gcc dot gnu.org
2023-04-25 18:32 ` [Bug tree-optimization/109154] [13/14 " tnfchris at gcc dot gnu.org
2023-04-25 18:34 ` jakub at gcc dot gnu.org
2023-04-26  6:58 ` rguenth at gcc dot gnu.org
2023-04-26  9:43 ` tnfchris at gcc dot gnu.org
2023-04-26 10:07 ` jakub at gcc dot gnu.org
2023-07-07 18:10 ` tnfchris at gcc dot gnu.org
2023-07-10  7:15 ` rguenth at gcc dot gnu.org
2023-07-10 10:33 ` tnfchris at gcc dot gnu.org
2023-07-10 10:46 ` rguenth at gcc dot gnu.org
2023-07-10 11:02 ` tnfchris at gcc dot gnu.org
2023-07-10 11:27 ` rguenth at gcc dot gnu.org
2023-07-10 11:49 ` tnfchris at gcc dot gnu.org
2023-07-14 10:22 ` cvs-commit at gcc dot gnu.org
2023-07-14 10:22 ` cvs-commit at gcc dot gnu.org
2023-07-27  9:25 ` rguenth at gcc dot gnu.org
2023-10-02 10:53 ` cvs-commit at gcc dot gnu.org
2023-10-18  8:54 ` cvs-commit at gcc dot gnu.org
2023-10-18  8:54 ` cvs-commit at gcc dot gnu.org
2023-10-18  8:54 ` cvs-commit at gcc dot gnu.org
2023-10-18  8:55 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:20 ` cvs-commit at gcc dot gnu.org
2023-11-09 14:25 ` [Bug tree-optimization/109154] [13 " tnfchris 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-109154-4-RLw6s8FFuY@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).