> > > diff --git a/gcc/ipa-inline.cc b/gcc/ipa-inline.cc
> > > index dc120e6da5a..9502a21c741 100644
> > > --- a/gcc/ipa-inline.cc
> > > +++ b/gcc/ipa-inline.cc
> > > @@ -682,7 +682,7 @@ can_early_inline_edge_p (struct cgraph_edge *e)
> > >       }
> > >     gcc_assert (gimple_in_ssa_p (DECL_STRUCT_FUNCTION (e->caller->decl))
> > >                 && gimple_in_ssa_p (DECL_STRUCT_FUNCTION (callee->decl)));
> > > -  if (profile_arc_flag
> > > +  if ((profile_arc_flag || condition_coverage_flag)
> > >         && ((lookup_attribute ("no_profile_instrument_function",
> > >                               DECL_ATTRIBUTES (caller->decl)) == 
> > > NULL_TREE)
> > >             != (lookup_attribute ("no_profile_instrument_function",
> > 
> > tree-inline should also copy the cond tags, since always_inline
> > functions are inlined even at -O0.  But I think this can be done
> > incrementally.
> > 
> > Patch is OK.
> > Thanks a lot and sorry for taking so long on this one.
> > Honza
> 
> I guess you mean that since tree-inlining happen after gimplification (does
> it?) that the basic condition -> condition expression association should
> also fold in the now-inlined conditions?

Yes, if you declare function always_inline the order of event is as
follows
 1) gimplification of both functions
 2) ssa constructions
 3) early inlining where inline happens
 4) profile instrumentation.

Honza
> 
> Thanks for the review - I'll do a final test run and install the patch.

Reply via email to