[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Intel-gfx] [PATCH 1/3] treewide: Lift switch variables out of switches



On Wed, Jan 23, 2019 at 04:17:30PM +0200, Jani Nikula wrote:
> Can't have:
> 
>       switch (i) {
>               int j;
>       case 0:
>               /* ... */
>       }
> 
> because it can't be turned into:
> 
>       switch (i) {
>               int j = 0; /* not valid C */
>       case 0:
>               /* ... */
>       }
> 
> but can have e.g.:
> 
>       switch (i) {
>       case 0:
>               {
>                       int j = 0;
>                       /* ... */
>               }
>       }
> 
> I think Kees' approach of moving such variable declarations to the
> enclosing block scope is better than adding another nesting block.

Another nesting level would be bad, but I think this is OK:

        switch (i) {
        case 0: {
                int j = 0;
                /* ... */
        }
        case 1: {
                void *p = q;
                /* ... */
        }
        }

I can imagine Kees' patch might have a bad effect on stack consumption,
unless GCC can be relied on to be smart enough to notice the
non-overlapping liveness of the vriables and use the same stack slots
for both.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.