[Bug tree-optimization/41101] [4.4/4.5 Regression] ICE in compute_antic, at tree-ssa-pre.c:2419
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
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