2015-12-10 12:29 GMT-03:00 Geyslan G. Bem <geyslan@xxxxxxxxx>: > 2015-12-10 12:17 GMT-03:00 David Laight <David.Laight@xxxxxxxxxx>: >> From: Felipe Balbi >>> Sent: 10 December 2015 15:14 >>> "Geyslan G. Bem" <geyslan@xxxxxxxxx> writes: >>> >>> > This patch removes redundant conditions. >>> > >>> > - (!A || (A && B)) is the same as (!A || B). >>> > - (length && length > 5) can be reduced to a single evaluation. >>> > >>> > Caught by: cppcheck >>> > >>> > Signed-off-by: Geyslan G. Bem <geyslan@xxxxxxxxx> >>> > --- >>> >>> I guess you didn't get previous comment in time; let's split this per >>> driver so different maintainers can pick their parts. >> >> I also suspect that gcc will optimise out the redundant checks as well. > Yes, David. it will. > > Let's see. > > void f(int f, int s) > { > if (!f || (f && s)) > printf("branch\n"); > } > > Generates without optimization three comparisons: > > cmpl $0, -4(%rbp) > je .L2 > cmpl $0, -4(%rbp) > je .L4 > cmpl $0, -8(%rbp) > je .L4 > > But with -O2 it generates only two: > > testl %edi, %edi > je .L2 > testl %esi, %esi > je .L1 > > Despite that, I think that the patches are welcome since they silence > checkpatch and make code clearer. Don't you think? Sorry, silence "cppcheck". I'm mistaking the tool name. > >> >> David >> > > > > -- > Regards, > > Geyslan G. Bem > hackingbits.com -- Regards, Geyslan G. Bem hackingbits.com -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html