If you want to flag errors for all possible wrongly used always_inline attribute, should this change be done in can_inline_edge_p? Or keep your current change, but also add a warning (something like 'always inline function is ignored etc') in inline_always_inline_functions when inline transformation can not meaningfully give a useful error.
David On Thu, Jun 13, 2013 at 11:33 AM, Sriraman Tallam <tmsri...@google.com> wrote: > On Thu, Jun 13, 2013 at 10:19 AM, Jan Hubicka <hubi...@ucw.cz> wrote: >>> On Thu, Jun 13, 2013 at 10:07 AM, Jan Hubicka <hubi...@ucw.cz> wrote: >>> >> Can you create a helper function to flag the error and perhaps also >>> >> put that check inside can_inline_edge_p ? >>> >> >>> >> David >>> >> >>> >> >>> >> On Wed, Jun 12, 2013 at 6:00 PM, Sriraman Tallam <tmsri...@google.com> >>> >> wrote: >>> >> > Hi Honza, >>> >> > >>> >> > I have isolated the ipa-inline.c part into a separate patch with a >>> >> > test and attached it here. The patch is simple. Could you please take >>> >> > a look? >>> >> > >>> >> > * ipa-inline.c (can_early_inline_edge_p): Flag an error when >>> >> > the function that cannot be inlined is target specific. >>> >> > * gcc.target/i386/inline_error.c: New test. >>> > >>> > Sorry for taking ages to look at the patch, I was too hooked into other >>> > problems. >>> > I also think can_early_inline_edge_p should not produce diagnostic - it >>> > is supposed >>> > to be predicate. >>> > >>> > So your problem is that the hard worker in tree-inline is not called at >>> > -O0 >>> > and thus errors are not output? I would suggest arranging >>> > inline_always_inline_functions >>> > to return true even if inlining failed and thus making inline_calls to be >>> > called. >>> >>> Thanks Honza! Yes, that is the problem. Should I just make it return >>> true for these special conditions (TARGET_MISMATCH + gnu_inline + >>> always_inline + ...)? >> >> Can't it just return true if there is any alwaysinline call? I think if >> inline fails, >> we always want to error, right? > > Ok, patch attached that does this. Please let me know what you think. > > Thanks > Sri > >> >> Honza