[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #11 from rguenth at gcc dot gnu dot org  2009-09-06 12:38 
---
We again have ANTIC_IN/OUT oscillation

ANTIC_OUT[] := { x_2 (0001), y_3 (0002), {pointer_plus_expr,x_2,4} (0011) }
ANTIC_IN[] := { x_2 (0001), y_3 (0002), {pointer_plus_expr,x_2,4} (0011) }
ANTIC_OUT[] := { x_2 (0001), y_3 (0002), {pointer_plus_expr,y_3,4} (0025) }
ANTIC_IN[] := { x_2 (0001), y_3 (0002), {pointer_plus_expr,y_3,4} (0025) }

for blocks 3, 9 and 6 which form a conditionally infinite loop.

:

:
  # x_2 = PHI 
  # y_3 = PHI 
  if (N_7(D) != 0)
goto ;
  else
goto ;

:
  goto ;

:

:
  # i_10 = PHI 
  D.1986_8 = i_10 * 4;
  D.1987_9 = y_3 + D.1986_8;
  D.1988_11 = x_2 + D.1986_8;
  D.1989_12 = *D.1988_11;
  D.1990_13 = x_2 + 4;
  D.1991_14 = *D.1990_13;
  D.1992_15 = D.1989_12 - D.1991_14;
  D.1993_16 = func (D.1992_15);
  *D.1987_9 = D.1993_16;
  if (D.1993_16 != 0)
goto ;
  else
goto ;

:
  i_20 = i_10 + 1;
  if (N_7(D) >= i_20)
goto ;
  else
goto ;

:
  goto ;

:

:
  goto ;

:
  return;

The maximal set has only {pointer_plus_expr,x_2,4} (0011),
{pointer_plus_expr,y_3,4} (0025) is the result of phi translating
{pointer_plus_expr,y_3,D.1986_8} (0007).

Injecting that pair into the cycle via BB3 -> BB8 yields to the oscillation
as from BB9 we get oscillating 11 which will mask out the other.

It seems to me that whenever we encounter such a cycle as 3 -> 9 -> 6 -> 3
we may not inject the maximal set there as it may not really be the
maximal set (which we can't really enlarge during phi translation, can we?
It does fix this case obviously though).


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dberlin at gcc dot gnu dot
   ||org


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2009-09-06 12:41 
---
This is what I am thinking of:

Index: gcc/tree-ssa-pre.c
===
--- gcc/tree-ssa-pre.c  (revision 151458)
+++ gcc/tree-ssa-pre.c  (working copy)
@@ -1802,7 +1802,10 @@ phi_translate_set (bitmap_set_t dest, bi
phi_trans_add (expr, translated, pred);

   if (translated != NULL)
-   bitmap_value_insert_into_set (dest, translated);
+   {
+ bitmap_value_insert_into_set (dest, translated);
+ bitmap_value_insert_into_set (maximal_set, translated);
+   }
 }
   VEC_free (pre_expr, heap, exprs);
 }


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #13 from rguenth at gcc dot gnu dot org  2009-09-06 12:50 
---
Equivalent to that would be to clean ANTIC_IN using the maximal set - that is,
do not allow expressions in ANTIC_IN that are not in the maximal set.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread dberlin at dberlin dot org


--- Comment #14 from dberlin at gcc dot gnu dot org  2009-09-06 14:15 
---
Subject: Re:  [4.4/4.5 Regression] ICE in 
compute_antic, at tree-ssa-pre.c:2419

On Sun, Sep 6, 2009 at 8:41 AM, rguenth at gcc dot gnu dot
org wrote:
>
>
> --- Comment #12 from rguenth at gcc dot gnu dot org  2009-09-06 12:41 
> ---
> This is what I am thinking of:

Think harder ;)

The maximal set is the initialization vector for this problem.
If we were using sbitmaps, it would be the equivalent of all ones.

Adding more things to it in the middle of the problem can't possibly be right.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenther at suse dot de


--- Comment #15 from rguenther at suse dot de  2009-09-06 14:17 ---
Subject: Re:  [4.4/4.5 Regression] ICE in
 compute_antic, at tree-ssa-pre.c:2419

On Sun, 6 Sep 2009, dberlin at dberlin dot org wrote:

> 
> 
> --- Comment #14 from dberlin at gcc dot gnu dot org  2009-09-06 14:15 
> ---
> Subject: Re:  [4.4/4.5 Regression] ICE in 
> compute_antic, at tree-ssa-pre.c:2419
> 
> On Sun, Sep 6, 2009 at 8:41 AM, rguenth at gcc dot gnu dot
> org wrote:
> >
> >
> > --- Comment #12 from rguenth at gcc dot gnu dot org ?2009-09-06 12:41 
> > ---
> > This is what I am thinking of:
> 
> Think harder ;)
> 
> The maximal set is the initialization vector for this problem.
> If we were using sbitmaps, it would be the equivalent of all ones.
> 
> Adding more things to it in the middle of the problem can't possibly be right.

Of course ;)  It was just to illustrate the problem that
maximal_set U ANTIC_IN != maximal_set, thus maximal_set isn't all ones
but there are zeros for some expressions in ANTIC_IN.

Richard.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread dberlin at dberlin dot org


--- Comment #16 from dberlin at gcc dot gnu dot org  2009-09-06 14:19 
---
Subject: Re:  [4.4/4.5 Regression] ICE in 
compute_antic, at tree-ssa-pre.c:2419

On Sun, Sep 6, 2009 at 8:50 AM, rguenth at gcc dot gnu dot
org wrote:
>
>
> --- Comment #13 from rguenth at gcc dot gnu dot org  2009-09-06 12:50 
> ---
> Equivalent to that would be to clean ANTIC_IN using the maximal set - that is,
> do not allow expressions in ANTIC_IN that are not in the maximal set.
>

It might be easier to go the other way around, and just special case
the maximal set everywhere again.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenther at suse dot de


--- Comment #17 from rguenther at suse dot de  2009-09-06 14:20 ---
Subject: Re:  [4.4/4.5 Regression] ICE in
 compute_antic, at tree-ssa-pre.c:2419

On Sun, 6 Sep 2009, dberlin at dberlin dot org wrote:

> --- Comment #16 from dberlin at gcc dot gnu dot org  2009-09-06 14:19 
> ---
> Subject: Re:  [4.4/4.5 Regression] ICE in 
> compute_antic, at tree-ssa-pre.c:2419
> 
> On Sun, Sep 6, 2009 at 8:50 AM, rguenth at gcc dot gnu dot
> org wrote:
> >
> >
> > --- Comment #13 from rguenth at gcc dot gnu dot org ?2009-09-06 12:50 
> > ---
> > Equivalent to that would be to clean ANTIC_IN using the maximal set - that 
> > is,
> > do not allow expressions in ANTIC_IN that are not in the maximal set.
> >
> 
> It might be easier to go the other way around, and just special case
> the maximal set everywhere again.

Can you elaborate on that a bit?

Thanks,
Richard.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #18 from rguenth at gcc dot gnu dot org  2009-09-06 17:41 
---
Do you mean sth like the following?  Simply assuming that the maximal-set is
all ones and obviously translating all ones also results in all ones.

Index: gcc/tree-ssa-pre.c
===
--- gcc/tree-ssa-pre.c  (revision 151459)
+++ gcc/tree-ssa-pre.c  (working copy)
@@ -2201,49 +2201,45 @@ compute_antic_aux (basic_block block, bo
 {
   VEC(basic_block, heap) * worklist;
   size_t i;
-  basic_block bprime, first;
+  basic_block bprime, first = NULL;

   worklist = VEC_alloc (basic_block, heap, EDGE_COUNT (block->succs));
   FOR_EACH_EDGE (e, ei, block->succs)
-   VEC_quick_push (basic_block, worklist, e->dest);
-  first = VEC_index (basic_block, worklist, 0);
-
-  if (phi_nodes (first))
{
- bitmap_set_t from = ANTIC_IN (first);
-
- if (!BB_VISITED (first))
-   from = maximal_set;
- phi_translate_set (ANTIC_OUT, from, block, first);
+ if (!first
+ && BB_VISITED (e->dest))
+   first = e->dest;
+ else if (BB_VISITED (e->dest))
+   VEC_quick_push (basic_block, worklist, e->dest);
+   }
+
+  /* Of multiple successors we have to have visited one already.  */
+  if (!first)
+   {
+ SET_BIT (changed_blocks, block->index);
+ BB_VISITED (block) = 0;
+ BB_DEFERRED (block) = 1;
+ changed = true;
+ VEC_free (basic_block, heap, worklist);
+ goto maybe_dump_sets;
}
+
+  if (phi_nodes (first))
+   phi_translate_set (ANTIC_OUT, ANTIC_IN (first), block, first);
   else
-   {
- if (!BB_VISITED (first))
-   bitmap_set_copy (ANTIC_OUT, maximal_set);
- else
-   bitmap_set_copy (ANTIC_OUT, ANTIC_IN (first));
-   }
+   bitmap_set_copy (ANTIC_OUT, ANTIC_IN (first));

-  for (i = 1; VEC_iterate (basic_block, worklist, i, bprime); i++)
+  for (i = 0; VEC_iterate (basic_block, worklist, i, bprime); i++)
{
  if (phi_nodes (bprime))
{
  bitmap_set_t tmp = bitmap_set_new ();
- bitmap_set_t from = ANTIC_IN (bprime);
-
- if (!BB_VISITED (bprime))
-   from = maximal_set;
- phi_translate_set (tmp, from, block, bprime);
+ phi_translate_set (tmp, ANTIC_IN (bprime), block, bprime);
  bitmap_set_and (ANTIC_OUT, tmp);
  bitmap_set_free (tmp);
}
  else
-   {
- if (!BB_VISITED (bprime))
-   bitmap_set_and (ANTIC_OUT, maximal_set);
- else
-   bitmap_set_and (ANTIC_OUT, ANTIC_IN (bprime));
-   }
+   bitmap_set_and (ANTIC_OUT, ANTIC_IN (bprime));
}
   VEC_free (basic_block, heap, worklist);
 }


Now obviously I'm not convinced we'll not defer blocks forever because
we can't seed one with the maximal set ...

Minimally tested with this testcase and tree-ssa.exp.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #19 from rguenth at gcc dot gnu dot org  2009-09-06 17:48 
---
Err... I wonder how this works at all ;)


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #20 from rguenth at gcc dot gnu dot org  2009-09-06 17:53 
---
Ah, we start from the exit block with ANTIC_IN {} and go to its predecessors
getting just EXP_GEN - TMP_GEN there.  Not unsound.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419

2009-09-06 Thread rguenth at gcc dot gnu dot org


--- Comment #21 from rguenth at gcc dot gnu dot org  2009-09-06 19:51 
---
Both patches bootstrap & regtest ok apart from

FAIL: 23_containers/forward_list/operations/6.cc execution test

hmm.


-- 


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

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org




Re: Bug#545335: FTBFS on at least powerpc and sparc

2009-09-06 Thread Andrew Vaughan
On Mon, 7 Sep 2009, Luk Claes wrote:
> Package: vtk
> Version: 5.2.1-9
> Severity: serious
>
> Hi
>
> Please look into why vtk fails to build from source on at least the
> powerpc and sparc buildds.
>
> There are quite some java packages waiting on vtk to be able to migrate
> to testing.
>
> Cheers
>
> Luk

The failure on powerpc looks like another instance of cmake looking for
/usr/lib/jvm/default-java/jre/lib/powerpc/libjawt.so 
while openjdk6 provides 
/usr/lib/jvm/default-java/jre/lib/ppc/libjawt.so [1].

The sparc failure is a gcc-4.3 ice [2].  cc-ing debian-gcc, hopefully someone 
there can take a look.


[1] http://lists.debian.org/debian-java/2009/09/msg7.html
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=544674

[2] 
https://buildd.debian.org/fetch.cgi?pkg=vtk;ver=5.2.1-9;arch=sparc;stamp=1251744017
[ 35%] Building CXX object 
Graphics/CMakeFiles/vtkGraphics.dir/vtkButterflySubdivisionFilter.o
In file included from /usr/include/c++/4.3/fstream:783,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Common/vtkIOStream.h:36,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Common/vtkSystemIncludes.h:40,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Common/vtkIndent.h:24,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Common/vtkObjectBase.h:43,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Common/vtkObject.h:41,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Filtering/vtkAlgorithm.h:32,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Filtering/vtkPolyDataAlgorithm.h:37,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Graphics/vtkInterpolatingSubdivisionFilter.h:30,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Graphics/vtkButterflySubdivisionFilter.h:45,
 from 
/build/buildd-vtk_5.2.1-9-sparc-UYc7Ay/vtk-5.2.1/Graphics/vtkButterflySubdivisionFilter.cxx:15:
/usr/include/c++/4.3/bits/fstream.tcc: In member function 'virtual typename 
std::basic_filebuf<_CharT, _Traits>::int_type std::basic_filebuf<_CharT, 
_Traits>::underflow()':
/usr/include/c++/4.3/bits/fstream.tcc:331: internal compiler error: 
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.

Cheers 
Andrew


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org