On Tue, 2018-11-06 at 19:30 -0800, Sagi Grimberg wrote: +AD4 +AD4 +AD4 How about changing that expression into the following to make it easier +AD4 +AD4 +AD4 for the compiler to optimize this code? +AD4 +AD4 +AD4 +AD4 +AD4 +AD4 (offset +AHw (bprv-+AD4-bv+AF8-offset +- bprv-+AD4-bv+AF8-len)) +ACY queue+AF8-virt+AF8-boundary(q) +AD4 +AD4 +AD4 +AD4 Uhm I have to admit I'm not really able to parse the above expression. +AD4 +AD4 Sure GCC will do it but I think it's less readable (at least for me). +AD4 +AD4 Let's see what other's think. +AD4 +AD4 I personally not a huge fan of decoding complicated expressions. But if +AD4 others are fine with it then I am too... What I proposed is not a new pattern. It is a pattern that is already used elsewhere in the Linux kernel. A few examples: >From dmabounce.c: /+ACo Figure out if we need to bounce from the DMA mask. +ACo-/ if ((dma+AF8-addr +AHw (dma+AF8-addr +- size - 1)) +ACY +AH4-mask) return 1+ADs >From dma-direct.h: if ((addr +AHw (addr +- size - 1)) +ACY +AH4-mask) return 0+ADs Bart.