|
|
|
|
|
by kmill
7 days ago
|
|
Certainly check the assembly, but loop invariant code motion and strength reduction are basic optimizations. C compilers tend to be good at optimizing indexing patterns even at -O1. Take a look, GCC and Clang go further than these suggestions by adding screenRect.w to the pointer each iteration to avoid the multiplication: https://godbolt.org/z/YfroqK7T6 Writing anything but pixels[y*screenRect.w + x] in an attempt to be faster, without checking the assembly first, is obfuscation. (For what it's worth, you can beat the compiler by using *pixels++. I didn't profile the code to check it actually was faster in practice however.) |
|