[SLOF] [PATCH 3/4] fbuffer: Implement MRMOVE as an accelerated primitive

Segher Boessenkool segher at kernel.crashing.org
Mon Sep 14 22:51:52 AEST 2015


On Mon, Sep 14, 2015 at 07:13:52AM -0500, Segher Boessenkool wrote:
> > > But it also contains a small hack: I need the barrier() in between
> > > (which is a asm volatile("":::"memory) call) or the compiler will not
> > > recognize fp as being set (even though we compile with
> > > -fno-strict-aliasing ?!?).
> > 
> > Now *that* is strange. segher any idea here ?
> 
> Nope.  Other than that casting between code and data pointers isn't
> valid C, but this is GNU C instead (-std=gnu99) and it is valid there.
> 
> I'll debug it; what GCC version?

With GCC 6, the very first (tree) dead store elimination kills the
stores to desc[] already; it thinks they are unused.  I don't yet
know why.  Making the local var static helps, but results in pretty
crappy code.


Segher


More information about the SLOF mailing list