https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65028

--- Comment #35 from Jan Hubicka <hubicka at ucw dot cz> ---
> propagate_alignment_accross_jump_function seems wrong:
> 
>  if (cur.known)
>     {    
>       if (!dest_lat->alignment.known)
>         {
>           dest_lat->alignment = cur; 
>           return true;
>         }
> 
> We can't change argument alignment from unknown to know.
> We can only reduce argument alignment.  Callee can only
> assume the smallest argument alignment passed down from
> all callers.

Using top/bottom would be probably less confusing here, but looking
into print_all_lattices I think !known represent TOP and BOTTOM
is known & align == 0. So the code above seems OK.
I think it is missing code to actually merge the values.  Let me see if I can
repreoduce testcase.

Honza

Reply via email to