This is the mail archive of the 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: [committed] [PR tree-optimization/86010] More aggressively trim partially dead mem* and str* calls

Hi Jeff,

On Fri, 6 Jul 2018 at 05:44, Jeff Law <> wrote:
> As noted in BZ 86010 we can be more aggressive when trimming tails of
> mem* or str* calls in gimple DSE since trimming a tail doesn't affect
> alignment and residuals are usually handled pretty efficiently in libc.
> Additionally, if the total number of live bytes left is smaller than a
> word, then it's highly likely we'll open-code the mem* or str* routine.
> So we allow more aggressive trimming in that case too.
> What's left to be able to close out 86010 is to identify when a memory
> store could be merged with a subsequent memset.   I'm skeptical of the
> importance of that optimization, though perhaps it comes up often enough
> with structure initializations to be worth doing.
> Bootstrapped and regression tested on x86_64-linux-gnu.  Installing on
> the trunk.

This is causing a regression on arm and i686:
gcc.dg/tree-ssa/pr30375.c: pattern found 0 times
FAIL: gcc.dg/tree-ssa/pr30375.c scan-tree-dump-times dse1
"MEM\\[\\(struct _s \\*\\)&signInfo \\+ [0-9]+B\\] = {}" 1

> Jeff

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