Re: [PATCH] Use tail calls to memcpy/memset even for structure assignments (PR target/41455, PR target/82935)

2018-06-22 Thread Jeff Law
On 12/06/2017 02:04 PM, Jakub Jelinek wrote: > Hi! > > Aggregate assignments and clears aren't in GIMPLE represented as calls, > and while often they expand inline, sometimes we emit libcalls for them. > This patch allows us to tail call those libcalls if there is nothing > after them. The patch

Re: [PATCH] Use tail calls to memcpy/memset even for structure assignments (PR target/41455, PR target/82935)

2017-12-15 Thread Jakub Jelinek
On Fri, Dec 15, 2017 at 10:30:32AM +0100, Richard Biener wrote: > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > > Hum, it doesn't look pretty ;) Can we defer this to stage1 given > it's a long-standing issue and we have quite big changes going in still? Ok, deferred.

Re: [PATCH] Use tail calls to memcpy/memset even for structure assignments (PR target/41455, PR target/82935)

2017-12-15 Thread Richard Biener
On Wed, 6 Dec 2017, Jakub Jelinek wrote: > Hi! > > Aggregate assignments and clears aren't in GIMPLE represented as calls, > and while often they expand inline, sometimes we emit libcalls for them. > This patch allows us to tail call those libcalls if there is nothing > after them. The patch

[PATCH] Use tail calls to memcpy/memset even for structure assignments (PR target/41455, PR target/82935)

2017-12-06 Thread Jakub Jelinek
Hi! Aggregate assignments and clears aren't in GIMPLE represented as calls, and while often they expand inline, sometimes we emit libcalls for them. This patch allows us to tail call those libcalls if there is nothing after them. The patch changes the tailcall pass, so that it recognizes a = b;