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

--- Comment #14 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Uroš Bizjak from comment #13)
> (In reply to Iain Sandoe from comment #12)
> > +  /* If we're profiling, we don't have a leaf.  */
> > +  gcc_assert (!crtl->is_leaf || !crtl->profile);
> >    stack_alignment_needed = crtl->stack_alignment_needed / BITS_PER_UNIT;
> >    preferred_alignment = crtl->preferred_stack_boundary / BITS_PER_UNIT;
> 
> This assert looks too risky to me, considering how many approaches to
> profiling generic x86 has.

It wasn't intended to be left in place - I was just checking that it was a safe
assumption for Darwin that profile implied !leaf.

> I think that adding
> 
> if (TARGET_MACHO && crtl->profile)
>   {
>     crtl->preferred_stack_boundary = 128;
>     crtl->stack_alignment_needed = 128;
>   }
> 
> should be the fail-safe solutiom.

or I could add "|| (TARGET_MACHO && crtl->profile)" to the existing list (so
that it doesn't fire for MS).

Reply via email to