public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "hubicka at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/42906] [4.5 Regression] Empty loop not removed
Date: Wed, 24 Mar 2010 19:02:00 -0000	[thread overview]
Message-ID: <20100324190202.710.qmail@sourceware.org> (raw)
In-Reply-To: <bug-42906-10053@http.gcc.gnu.org/bugzilla/>



------- Comment #23 from hubicka at gcc dot gnu dot org  2010-03-24 19:02 -------
Created an attachment (id=20188)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20188&action=view)
Patch in testing

Hi,
this is patch I am testing.

I was also re-thinking the problem of redirecting BB with dead conditional to
next useful postdominator (that is the "fixed" version of algorihm by shiller).
I am not convinced we can pick random PHI argument here as Richard changed my
original code looking for source of control dependent graph.

The testcase would be something like

BB1 with succesors BB2 and BB6
BB2 with succesors BB3 and BB4
BB3 and BB4 with succesors BB5

and BB6 containing PHI that is A from BB1 and B from BB3 or BB4
If we end up eliminating BB3 and BB4 and thus condition in BB3, we will
redirect BB3 to BB5.  The argument of PHI however must be updated to B for new
edge, not A as we pick currently.

I will try to create real world testcase and I think we can fix this by
avoidiging the redirection.  Cytron et al suggest using random edge leaving BB
with dead conditional.  This is wrong since it closes infinite loops.  I think
we can instead of that just pick random edge that is not loopback edge in DFS.
That won't close loops and will result in acyclic reverse EBBS of empty blocks
we easilly cleanup afterwards.

Honza


-- 


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


  parent reply	other threads:[~2010-03-24 19:02 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-30 16:06 [Bug tree-optimization/42906] New: " rguenth at gcc dot gnu dot org
2010-01-30 16:06 ` [Bug tree-optimization/42906] " rguenth at gcc dot gnu dot org
2010-01-30 16:37 ` steven at gcc dot gnu dot org
2010-01-30 16:42 ` steven at gcc dot gnu dot org
2010-01-30 16:46 ` steven at gcc dot gnu dot org
2010-01-30 16:51 ` steven at gcc dot gnu dot org
2010-01-30 16:53 ` rguenth at gcc dot gnu dot org
2010-01-30 16:55 ` rguenth at gcc dot gnu dot org
2010-01-30 16:58 ` rguenth at gcc dot gnu dot org
2010-01-30 16:58 ` rguenth at gcc dot gnu dot org
2010-01-30 17:31 ` steven at gcc dot gnu dot org
2010-01-30 20:32 ` steven at gcc dot gnu dot org
2010-01-30 20:56 ` rguenth at gcc dot gnu dot org
2010-01-30 21:12 ` rguenth at gcc dot gnu dot org
2010-01-30 23:04 ` rguenth at gcc dot gnu dot org
2010-01-30 23:15 ` steven at gcc dot gnu dot org
2010-02-02 13:31 ` rguenth at gcc dot gnu dot org
2010-02-16 19:54 ` changpeng dot fang at amd dot com
2010-02-16 19:57 ` pinskia at gcc dot gnu dot org
2010-03-17  0:19 ` changpeng dot fang at amd dot com
2010-03-17  0:22 ` changpeng dot fang at amd dot com
2010-03-17 10:01 ` rguenther at suse dot de
2010-03-18 17:24 ` changpeng dot fang at amd dot com
2010-03-18 17:30 ` rguenther at suse dot de
2010-03-24 18:18 ` hubicka at gcc dot gnu dot org
2010-03-24 19:02 ` hubicka at gcc dot gnu dot org [this message]
2010-03-25 17:23 ` hubicka at ucw dot cz
2010-03-27 18:31 ` hubicka at gcc dot gnu dot org
2010-04-06 11:26 ` rguenth at gcc dot gnu dot org
2010-04-06 11:38 ` hubicka at ucw dot cz
2010-04-06 15:19 ` hubicka at gcc dot gnu dot org
2010-07-31  9:35 ` rguenth at gcc dot gnu dot org
     [not found] <bug-42906-4@http.gcc.gnu.org/bugzilla/>
2010-12-16 13:05 ` rguenth at gcc dot gnu.org
2011-04-28 15:15 ` rguenth at gcc dot gnu.org
2012-03-23 15:34 ` hubicka at gcc dot gnu.org
2012-07-02 10:29 ` rguenth 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=20100324190202.710.qmail@sourceware.org \
    --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).