This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Disable accumulate-outgoing-args for Generic and Buldozers
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, rguenther at suse dot de, Eric Botcazou <ebotcazou at adacore dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 6 Feb 2014 18:25:16 +0100
- Subject: Re: Disable accumulate-outgoing-args for Generic and Buldozers
- Authentication-results: sourceware.org; auth=none
- References: <20140101143004 dot GD26209 at kam dot mff dot cuni dot cz> <2893290 dot IYlSZnu3Ef at polaris> <20140123231639 dot GA6783 at kam dot mff dot cuni dot cz> <20140124003915 dot GA28600 at kam dot mff dot cuni dot cz> <20140206170641 dot GA30621 at kam dot mff dot cuni dot cz> <20140206171746 dot GC12671 at tucnak dot redhat dot com>
> On Thu, Feb 06, 2014 at 06:06:41PM +0100, Jan Hubicka wrote:
> > > Hi,
> > > this is improved patch I am testing. The basic idea is to remove push
> > > expanders for cases where we do not have push instruction anyway.
> > > emit_move_insns then resorts to unconditonally call move expander
> > > with push operand. I expended ix86_expand_vector_move to handle
> > > it gracefully and for that I borrowed emit_move_resolve_push
> > > function from expr.c since it seemed pointless to preserve
> > > duplicated logic in ix86_expand_push.
> > >
> > > I can easily imagine that scheduling around function call sequences
> > > matters, so I also updated push/pop expanders to preserve memory attributes.
> > >
> > > Eventually I found the attributes to be blank because of logic in expr.c
> > > that clears alias info when sibcall is enabled. We can now do better
> > > by only disabling it in functions that actually do sibcalls.
> > >
> > > Bootstrap/regtest running on x86_64-linux, OK for the non-i386 parts
> > > if it passes?
> >
> > Ping...
>
> The expr.[ch]/function.h/tree-tailcall.c bits are ok.
> I see your changes clash with my PR60077 fix, does your patch make them
> obsolete and you take care of using proper alignment info?
> If so, at least the two tests from that PR's patch should be added,
> but I can do that as a follow-up.
Yes, this patch was made to fix gcc.target/i386/pr35767-5.c
by obtaining correct alignment (and also alias) info on the store.
Sorry for making you to duplicate the effort - seems I should have pinged it
earlier.
Honza