public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity
@ 2004-03-28  1:54 kazu at cs dot umass dot edu
  2004-03-28  7:35 ` [Bug optimization/14758] " pinskia at gcc dot gnu dot org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: kazu at cs dot umass dot edu @ 2004-03-28  1:54 UTC (permalink / raw)
  To: gcc-bugs

void bar (void);

void
foo (int a)
{
  a = !a;
  a = !a;
  a = !a;
  a = !a;
  a = !a;

  if (a)
    bar ();
}

Here is the last tree in SSA form:

foo (a)
{
<bb 0>:
  a_2 = a_1 == 0;
  a_3 = a_2 == 0;
  if (a_3 == 0) goto <L0>; else goto <L1>;

<L0>:;
  bar () [tail call];

<L1>:;
  return;

}

Note that a_2 and a_3 still remain.

-- 
           Summary: [tree-ssa] another missed forward propagation
                    opportunity
           Product: gcc
           Version: tree-ssa
            Status: UNCONFIRMED
          Keywords: pessimizes-code
          Severity: enhancement
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kazu at cs dot umass dot edu
                CC: gcc-bugs at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
@ 2004-03-28  7:35 ` pinskia at gcc dot gnu dot org
  2004-03-30 20:30 ` pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-28  7:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-28 07:35 -------
I noticed something like this too, see PR 14731 (that code does not come from real code but it was just 
to show the problem). Confirmed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |14731
              nThis|                            |
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-03-28 07:35:45
               date|                            |
   Target Milestone|---                         |tree-ssa


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
  2004-03-28  7:35 ` [Bug optimization/14758] " pinskia at gcc dot gnu dot org
@ 2004-03-30 20:30 ` pinskia at gcc dot gnu dot org
  2004-03-30 21:31 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-30 20:30 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-30 20:30 -------
I am going to take care of this one.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
  2004-03-28  7:35 ` [Bug optimization/14758] " pinskia at gcc dot gnu dot org
  2004-03-30 20:30 ` pinskia at gcc dot gnu dot org
@ 2004-03-30 21:31 ` pinskia at gcc dot gnu dot org
  2004-03-30 21:35 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-30 21:31 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-30 21:31 -------
Here is an example which is easier to put into the testsuite, there should be no references to 
link_error.

void link_error (void);
void
foo (int a)
{
  int old_a=a;
  a = !a;
  a = !a;
  a = !a;
  a = !a;
  a = !a;

  if (a)
    if (old_a)
      link_error ();
}



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2004-03-28 07:35:45         |2004-03-30 21:31:27
               date|                            |


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
                   ` (2 preceding siblings ...)
  2004-03-30 21:31 ` pinskia at gcc dot gnu dot org
@ 2004-03-30 21:35 ` pinskia at gcc dot gnu dot org
  2004-03-31  0:02 ` dnovillo at redhat dot com
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-30 21:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-30 21:35 -------
The reason why forwprop does not catch all of the them is that it does not run over and over on 
the same statement.

-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
                   ` (3 preceding siblings ...)
  2004-03-30 21:35 ` pinskia at gcc dot gnu dot org
@ 2004-03-31  0:02 ` dnovillo at redhat dot com
  2004-03-31  0:04 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: dnovillo at redhat dot com @ 2004-03-31  0:02 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at redhat dot com  2004-03-31 00:02 -------
Subject: Re:  [tree-ssa] another missed forward
	propagation opportunity

On Tue, 2004-03-30 at 15:30, pinskia at gcc dot gnu dot org wrote:

> I am going to take care of this one.
>
Andrew, I'm planning to generalize CCPs propagation engine after the
merge into mainline.  Long term, the forward propagation pass will
probably be subsumed by this.

At this point I'm not sure if it's even worth our time trying to extend
it to handle more cases.


Diego.



-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
                   ` (4 preceding siblings ...)
  2004-03-31  0:02 ` dnovillo at redhat dot com
@ 2004-03-31  0:04 ` pinskia at gcc dot gnu dot org
  2004-03-31  5:36 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-31  0:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-31 00:04 -------
Thanks for the heads up, I will wait then.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|pinskia at gcc dot gnu dot  |unassigned at gcc dot gnu
                   |org                         |dot org
             Status|ASSIGNED                    |NEW


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
                   ` (5 preceding siblings ...)
  2004-03-31  0:04 ` pinskia at gcc dot gnu dot org
@ 2004-03-31  5:36 ` pinskia at gcc dot gnu dot org
  2004-05-15  6:05 ` [Bug tree-optimization/14758] " pinskia at gcc dot gnu dot org
  2004-05-15 15:46 ` giovannibajo at libero dot it
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-31  5:36 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-31 05:36 -------
*** Bug 14731 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
Bug 14758 depends on bug 14731, which changed state.

Bug 14731 Summary: [tree-ssa] missed jump threading on the tree level
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14731

           What    |Old Value                   |New Value
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |DUPLICATEBug 14758 depends on bug 14731, which changed state.

Bug 14731 Summary: [tree-ssa] missed jump threading on the tree level
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14731

           What    |Old Value                   |New Value
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |DUPLICATE

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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
                   ` (6 preceding siblings ...)
  2004-03-31  5:36 ` pinskia at gcc dot gnu dot org
@ 2004-05-15  6:05 ` pinskia at gcc dot gnu dot org
  2004-05-15 15:46 ` giovannibajo at libero dot it
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-15  6:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-05-14 17:41 -------
Fixed by:
	* tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
	new parameters for the statement and variable worklist as well
	as a bitmap of interesting SSA_NAMEs.  Walk over the statement
	worklist recording interesting variables in the variable worklist
	and bitmap.  Handle casts between integral and boolean types.
	(substitute_single_use_vars): Accept new parameters for the statement
	and variable worklist.  When a substitution is made add a new
	entry to the statement worklist.  Handle casts between integral
	and boolean types.
	(tree_ssa_forward_propagate_single_use_vars): Rework to pass
	worklists to children.  Iterate until the statement worklist
	is empty.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/14758] [tree-ssa] another missed forward propagation opportunity
  2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
                   ` (7 preceding siblings ...)
  2004-05-15  6:05 ` [Bug tree-optimization/14758] " pinskia at gcc dot gnu dot org
@ 2004-05-15 15:46 ` giovannibajo at libero dot it
  8 siblings, 0 replies; 10+ messages in thread
From: giovannibajo at libero dot it @ 2004-05-15 15:46 UTC (permalink / raw)
  To: gcc-bugs



-- 
Bug 14758 depends on bug 14728, which changed state.

Bug 14728 Summary: [tree-ssa] missed jump threading due to casts
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14728

           What    |Old Value                   |New Value
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

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


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2004-05-14 20:13 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-28  1:54 [Bug optimization/14758] New: [tree-ssa] another missed forward propagation opportunity kazu at cs dot umass dot edu
2004-03-28  7:35 ` [Bug optimization/14758] " pinskia at gcc dot gnu dot org
2004-03-30 20:30 ` pinskia at gcc dot gnu dot org
2004-03-30 21:31 ` pinskia at gcc dot gnu dot org
2004-03-30 21:35 ` pinskia at gcc dot gnu dot org
2004-03-31  0:02 ` dnovillo at redhat dot com
2004-03-31  0:04 ` pinskia at gcc dot gnu dot org
2004-03-31  5:36 ` pinskia at gcc dot gnu dot org
2004-05-15  6:05 ` [Bug tree-optimization/14758] " pinskia at gcc dot gnu dot org
2004-05-15 15:46 ` giovannibajo at libero dot it

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).