public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/99101] optimization bug with -ffinite-loops Date: Wed, 24 Feb 2021 15:09:33 +0000 [thread overview] Message-ID: <bug-99101-4-VbG47K8yRh@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-99101-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99101 --- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> --- So we can massage post-dom compute to make control dependence which is defined in terms of pdom do what we want. We have void dom_info::calc_dfs_tree () { ... /* In the post-dom case we may have nodes without a path to EXIT_BLOCK. They are reverse-unreachable. In the dom-case we disallow such nodes, but in post-dom we have to deal with them. There are two situations in which this occurs. First, noreturn functions. Second, infinite loops. In the first case we need to pretend that there is an edge to the exit block. In the second case, we wind up with a forest. We need to process all noreturn blocks before we know if we've got any infinite loops. */ which then first visits blocks w/o successors, breaking our expectations. So with that in mind indeed connecting infinite loops to exit would circumvent the issue, but connect_infinite_loops_to_exit does not reliably avoid making the edge from the noreturn block (if that came first), dfs_find_deadend also likes noreturn blocks very much. Heuristically one could use loop info, but that fails to work for irreducible regions. One could also use marked backedges from a forward DFS walk (blocks with just backedges outgoing).
next prev parent reply other threads:[~2021-02-24 15:09 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-15 8:55 [Bug c++/99101] New: " 251078896 at qq dot com 2021-02-15 9:43 ` [Bug tree-optimization/99101] " rguenth at gcc dot gnu.org 2021-02-15 10:17 ` rguenth at gcc dot gnu.org 2021-02-15 10:25 ` 251078896 at qq dot com 2021-02-15 10:29 ` jakub at gcc dot gnu.org 2021-02-15 10:38 ` rguenth at gcc dot gnu.org 2021-02-15 10:46 ` rguenth at gcc dot gnu.org 2021-02-15 13:08 ` rguenth at gcc dot gnu.org 2021-02-24 14:00 ` rguenth at gcc dot gnu.org 2021-02-24 14:20 ` rguenth at gcc dot gnu.org 2021-02-24 14:41 ` rguenth at gcc dot gnu.org 2021-02-24 14:45 ` rguenth at gcc dot gnu.org 2021-02-24 15:09 ` rguenth at gcc dot gnu.org [this message] 2021-02-25 10:18 ` rguenth at gcc dot gnu.org 2021-02-25 11:34 ` rguenth at gcc dot gnu.org 2021-02-25 12:09 ` rguenth at gcc dot gnu.org 2021-02-25 12:40 ` rguenth at gcc dot gnu.org 2021-02-25 13:31 ` matz at gcc dot gnu.org 2021-02-25 18:29 ` matz at gcc dot gnu.org 2021-02-25 18:34 ` matz at gcc dot gnu.org 2021-02-26 9:38 ` rguenth at gcc dot gnu.org 2021-03-03 12:16 ` rguenth at gcc dot gnu.org 2021-03-03 14:00 ` matz at gcc dot gnu.org 2021-03-03 14:37 ` rguenth at gcc dot gnu.org 2021-03-03 19:52 ` hubicka 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-99101-4-VbG47K8yRh@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: linkBe 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).