2020-12-13 15:40:03

by Alexandre Belloni

[permalink] [raw]
Subject: Re: mmc: atmel-mci: Reduce scope for the variable “slot” in atmci_request_end()

On 12/12/2020 01:16:39-0800, Joe Perches wrote:
> On Fri, 2020-12-11 at 09:03 +0100, Alexandre Belloni wrote:
> > On 11/12/2020 07:34:41+0100, Markus Elfring wrote:
> > > > > How do you think about a patch like “staging: speakup: remove redundant initialization
> > > > > of pointer p_key” for comparison?
> > > > > https://lore.kernel.org/patchwork/patch/1199128/
> > > > > https://lore.kernel.org/driverdev-devel/[email protected]/
> > > > >
> > > > > Would you tolerate to omit the initialisation for the variable “slot”?
> > > >
> > > > If you were able to provide one good technical reason.
> > >
> > > I find that the positions of variable definitions (and similar assignments) influence
> > > the generation of executable code.
> > >
> > And you are wrong, it doesn't.
>
> I rarely reply or read any Markus' emails as everything
> from Markus goes into a 'don't read' folder but I was cc'd
> directly on one from someone else recently so I think I
> should reply to this one too.
>
> In this case Alexandre it seems true, but in the generic case
> it may be false. It may depend on stack size and location.
>
> For instance, with large structs declared either at the top
> of a function or in separate branches within the function:
>

I think you realize your example is way more complicated than
initializing basic type variable to 0 or NULL which has probably been
optimized forever.

This patch is just unnecessary churn that was generated without giving
any thought. It was easy to check whether the patch actually improved
anything. It doesn't and makes readability worse.


--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


2020-12-13 16:37:05

by Joe Perches

[permalink] [raw]
Subject: Re: mmc: atmel-mci: Reduce scope for the variable “slot” in atmci_request_end()

On Sat, 2020-12-12 at 14:17 +0100, Alexandre Belloni wrote:
> On 12/12/2020 01:16:39-0800, Joe Perches wrote:
> > In this case Alexandre it seems true, but in the generic case
> > it may be false. It may depend on stack size and location.
> >
> > For instance, with large structs declared either at the top
> > of a function or in separate branches within the function:
>
> I think you realize your example is way more complicated than
> initializing basic type variable to 0 or NULL which has probably been
> optimized forever.

Maybe.

Markus does a lot of what most (or perhaps some) consider thoughtless.

A generic point might be maximizing the local scope of declarations.

Maximizing the local scope can make reading easier as the type of an
automatic used for a temporary purpose can be found closer to the code
that uses it. This is especially true for long line-count functions.

IMO: it's a reasonable goal though in this instance perhaps unnecessary.

cheers, Joe