This is the mail archive of the
mailing list for the GCC project.
Re: Unit at a time 2/3 - backward inlining, local functions
> > On Tue, Feb 18, 2003 at 11:49:46PM +0100, Jan Hubicka wrote:
> > > - if (indirect)
> > > + if (!fndecl && !fntype)
> > This is an incorrect substitution. An indirect call can and usually will
> > have a proper function type.
> I've screwed up the conditional. It should be (!fndecl && fntype)
> this is the way it is tested in calls.c now:
> /* Start updating where the next arg would go.
> On some machines (such as the PA) indirect calls have a different
> calling convention than normal calls. The last argument in
> INIT_CUMULATIVE_ARGS tells the backend if this is an indirect call
> or not. */
> INIT_CUMULATIVE_ARGS (args_so_far, funtype, NULL_RTX, (fndecl == 0));
> Funtype will be always nonzero for direct calls, so the conditional
and libcalls are always direct.
> should be OK then.
> Would be the patch Ok with this fix?
> > I presume you're trying to work around libcall nonsense. You'll have to do
> > it another way. The preferred method would be to get rid of libcalls, and
> > instead have them all go through expand_call. ;-)
> Uhm... would be really nice..
> > r~