This is the mail archive of the gcc-bugs@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]

[Bug tree-optimization/40321] [4.4/4.5 Regression] internal compiler error: in compute_antic, at tree-ssa-pre.c:2501



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


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