This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tcb] Incremental SSA updates


Hello,

> > > > > I believe we went over this before. you aren't actually interpreting the
> > > > > code correctly, because that's not where the real bug is.
> > > > > The mark_for_rewrite call you removed was there to keep it from
> > > > > releasing the phi node names while we moved them.  If you don't have it,
> > > > > it will simply release them when we remove the phi nodes from one block,
> > > > > and then they get reused, but are still referenced in the copies we
> > > > > moved, as well as wherever else they got reused, which is the real
> > > > > reason why you get verify_ssa failures.
> > > > 
> > > > no, I have solved this problem (I simply set PHI_RESULT of the removed
> > > > phi to NULL before releasing it). This is something entirely different.
> > > 
> > > On what exact testcase does it now fail that it did not before?
> > > I will simply try the same trick on the current code, and see if it
> > > works there, to see if it actually is something entirely different.
> > 
> > testsuite/gcc.dg/tree-ssa/ltrans-1.c
> 
> Just changing the phi_result to null lets me remove the unmark/mark
> calls, without the rest of your patch apply.
> I highly suspect the bug is elsewhere in your code if this test is
> failing.
> The perfect_nestify code doesn't do anything illegal on that testcase.

use the patch below to reproduce the problem.
rewrite_into_loop_closed_ssa currently masks the problem,
at the expense of causing a misscompilation.

Zdenek

Index: tree-loop-linear.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-loop-linear.c,v
retrieving revision 2.2.2.5
diff -c -3 -p -r2.2.2.5 tree-loop-linear.c
*** tree-loop-linear.c	2 Feb 2005 02:43:55 -0000	2.2.2.5
--- tree-loop-linear.c	11 Feb 2005 15:28:52 -0000
*************** linear_transform_loops (struct loops *lo
*** 374,378 ****
--- 374,379 ----
      }
    free_df ();
    scev_reset ();
+   verify_ssa ();
    rewrite_into_loop_closed_ssa ();
  }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]