This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/40321] [4.4/4.5 Regression] internal compiler error: in compute_antic, at tree-ssa-pre.c:2501
- From: "dberlin at dberlin dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jul 2009 13:37:28 -0000
- Subject: [Bug tree-optimization/40321] [4.4/4.5 Regression] internal compiler error: in compute_antic, at tree-ssa-pre.c:2501
- References: <bug-40321-17447@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #22 from dberlin at gcc dot gnu dot org 2009-07-15 13:37 -------
Subject: Re: [4.4/4.5 Regression] internal
compiler error: in compute_antic, at tree-ssa-pre.c:2501
Phi uses can be in the maximum set as long as they are not phi's themselves.
There is a comment above add_to_exp_gen that explains why:
" PHI nodes can't go in the maximal sets because they are not in
TMP_GEN, so it is possible to get into non-monotonic situations
during ANTIC calculation, because it will *add* bits. "
(being an intersection problem, the number of values in the set should
only ever stay the same or decrease)
I would be surprised if it bootstraps :)
On Wed, Jul 15, 2009 at 8:42 AM, rguenth at gcc dot gnu dot
org<gcc-bugzilla@gcc.gnu.org> wrote:
>
>
> ------- Comment #20 from rguenth at gcc dot gnu dot org ?2009-07-15 12:42 -------
> One thing that is odd is that the maximal set misses a_1 and b_2 (but it does
> have the default defs). ?Adding PHI arguments to the maximal set fixes this
> PR...
>
> Index: tree-ssa-pre.c
> ===================================================================
> --- tree-ssa-pre.c ? ? ?(revision 149663)
> +++ tree-ssa-pre.c ? ? ?(working copy)
> @@ -3662,6 +3662,16 @@ make_values_for_phi (gimple phi, basic_b
> ? ? ? add_to_value (get_expr_value_id (e), e);
> ? ? ? bitmap_insert_into_set (PHI_GEN (block), e);
> ? ? ? bitmap_value_insert_into_set (AVAIL_OUT (block), e);
> + ? ? ?if (!in_fre)
> + ? ? ? {
> + ? ? ? ? unsigned i;
> + ? ? ? ? for (i = 0; i < gimple_phi_num_args (phi); ++i)
> + ? ? ? ? ? {
> + ? ? ? ? ? ? e = get_or_alloc_expr_for (gimple_phi_arg_def (phi, i));
> + ? ? ? ? ? ? add_to_value (get_expr_value_id (e), e);
> + ? ? ? ? ? ? bitmap_value_insert_into_set (maximal_set, e);
> + ? ? ? ? ? }
> + ? ? ? }
> ? ? }
> ?}
>
>
> I'll give this a complete round of bootstrapping / testing.
>
> Danny - does this look like an obvious mistake or are they not supposed to
> be in the maximal set?
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40321
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40321