On Sun, 17 Mar 2019 20:12:04 +0100
Robin Gareus <robin@gareus.org> wrote:
>On 3/17/19 5:56 PM, Jonathan Brickman wrote:
>> That is likely to change depending on GCC optimization setting, no?
>
>Not usually. It depends on the target architecture more than anything.
>
>Even with -O0, gcc translates integer addition and multiplications into
>a combination of bitwise and arithmetic operations if that is
>appropriate for the target CPU.
>
>
>On 3/12/19 11:43 PM, Will Godfrey wrote:
>> Does anyone know if GCC will replace power of 2
>> multiplications/divisions of unsigned integers with bit shifts?
>Not only power of two, and it depends. In some cases the compiler
>doesn't replace it because the resulting code is not faster. Many modern
>CPU already implement integer multiplication using bitwise operations in
>microcode.
>
>I don't know if this your question is academic, but if you plan to
>manually optimize code, I highly recommend against that.
>
>Write semantically! If you mean a multiplication, use (a * 2), if you
>mean bit-shift use (a << 1). Do not use bitwise-operations when you
>really do integer-arithmetics.
>
>Your future self and code-contributers will thank you for it; as will
>compilers targeting future CPU architectures.
></rant>
>
>2c,
>robin
Thanks Robin. Very clear. It's the direction I was beginning to think in. It's
sometimes difficult to imagine how far compilers have advanced over the years.
-- Will J Godfrey http://www.musically.me.uk Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-devReceived on Mon Mar 18 00:15:03 2019
This archive was generated by hypermail 2.1.8 : Mon Mar 18 2019 - 00:15:03 EET