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

Re: 3.3 error when inlining


On Friday 13 June 2003 08:35 am, Andrew Pinski wrote:
> I think the reason why 2.95.3 did not warn is because it does not have
> the tree-inliner but uses the rtl-inliner.
>
Looking at the code generated by 2.95.3 for that test case...
Well, 2.95.3 is long past fixing; probably not a useful comparison.

But, 2.95.3 (tree-inliner) appears to be trying to create a "single
exit point" function and having trouble handling the explicit return
inside of a conditional and the implicit return from a void function.
It is that combination of conditions it is not handling well.

If, 3.3 (rtl-inliner) is also trying to create a "single exit point" function;
then the problem may lay in the handling of that same combination
of conditions.
Note: After re-writing as a "single exit point" function the label,
the explicit return, the goto and the warning(?) are superfluous.
Under the original "if (0)" version of the test case, then the local
array is unused; with that noted; the entire "inner" should disappear
without a trace - the now (or to be) eleminated "goto label" shouldn't
be forcing the empty function body to be retained.

I'll do some more source level checking and see if I can come up with 
useful information.

Mike
>
>
> Thanks,
> Andrew Pinski
>
> On Friday, Jun 13, 2003, at 09:11 US/Eastern, Ulrich Weigand wrote:
> > Michael S. Zick wrote:
> >> Using gcc-2.95.3, compiling to asm (on x86); I can confirm that:
> >> No warnings, No errors, Compiles as expected, all -O? levels.
> >
> > Thanks for the data point.  On 3.3 I get the same error with -O3 ...
> >
> > Bye,
> > Ulrich
> >
> > --
> >   Dr. Ulrich Weigand
> >   weigand@informatik.uni-erlangen.de


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