[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-wireless
Subject: Re: [PATCH 1/4] brcm80211: deinline brcmf_chip_cr4_enterdl, save 440 bytes
From: Arend van Spriel <arend () broadcom ! com>
Date: 2014-03-31 13:42:55
Message-ID: 533970DF.70303 () broadcom ! com
[Download RAW message or body]
On 31/03/14 13:18, Denys Vlasenko wrote:
> On 03/31/2014 09:38 AM, Arend van Spriel wrote:
> > On 30/03/14 23:31, Denys Vlasenko wrote:
> > > Automated script discovered that without forced inlining,
> > > gcc-4.7 generates smaller code for this function.
> > >
> > > There is no need to declare static functions inline anyway:
> > > nowadays gcc detects single-callsite static functions
> > > which benefit from inlining.
> >
> > These patches look awfully familiar. I tend to object, but I don't know the \
> > details of this automated script.
>
> The script removes "static" keyword, recompiles the .c file,
> compares the sizes, and if code size went down,
> creates a patch
>
> > How about execution time or is this only compile tested?
>
> The change adds one pair of call/return instructions -
> probably around 5-10 CPU cycles.
>
> The function in question is a part of firmware download logic,
> which is nowhere near being hot path/.
True. My remarks are on all four patches and I just replied to the first
patch. The other patches are in interrupt handling code, ie. interrupt
or bottom-halve context.
> > The other thing is that you seem to rely on a specific gcc version.
> > What about pre-4.7? How about different architectures.
> > Was this determined on x86, arm, sparc, mips.
> > All these questions make me say 'nay'.
>
> Not making functions inline unless there is a good reason
> is a general good coding practice. It is not a compiler-
> or architecture-specific optimization.
Agree, but you seem to assume that in this case there is no good reason.
Regards,
Arend
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic