Re: [PATCH 2/1] bswap: convert get_be16, get_be32 and put_be32 to inline functions
- Date: Sun, 16 Jul 2017 06:28:16 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [PATCH 2/1] bswap: convert get_be16, get_be32 and put_be32 to inline functions
On Sun, Jul 16, 2017 at 06:27:04AM -0400, Jeff King wrote:
> On Sat, Jul 15, 2017 at 09:22:50PM +0200, René Scharfe wrote:
> > Simplify the implementation and allow callers to use expressions with
> > side-effects by turning the macros get_be16, get_be32 and put_be32 into
> > inline functions.
> > Signed-off-by: Rene Scharfe <l.s.r@xxxxxx>
> > ---
> > All these redundant casts started to bother me, so I tried to come up
> > with nice and clean inline functions. Successfully? You tell me.
> > They are longer, but less cluttered. Would it punish -O0 builds? Is
> > it all worth it?
> I do think the end result is a lot more readable. On gcc 6 at least, the
> function seems to end up inlined even with -O0.
For my footnote. I was just going to show the test file I compiled:
uint32_t foo(const char *x)
It's possible the optimizer may behave differently on a more complicated
input, but it does show that -O0 is still willing to inline.